組合語言實現等邊三角形
組合語言實現等邊三角形
對於如何使用匯編語言繪製橫線、豎線、斜線,在上文已經做了詳細介紹,如果還未看過上文,請先閱讀(https://blog.csdn.net/qq_40298054/article/details/84496944),本文主要對於如何繪製等邊三角形進行介紹。
設直線y = f(x) = kx+b
對於推導公式P = f(x+1) - f(x) - 1/2 = kx+k+b-kx-b-1/2 = k-1/2 = (△y/△x)-1/2 ①
在上文中我們對此結果進行了簡化(除法運算變加法)P = 2△y-△x
然而我們觀察①式,發現其實對於P的運算我們只需要一個斜率即可,對於△y和△x的數值具體為多少無須在意
對於等邊三角形來說,K=√3,所以最理想的辦法就是在程式的起初便將K值儲存起來,然後在程式中呼叫。但是對於浮點數的操作需要不同的方法,所以我在此處便取了巧。因為√3約等為1.732,所以我賦值△y=1732,△x=1000,在數值上做了近似處理。在程式中就無需計算△y和△x,直接運用現有數值進行計算。
由於需要運用該程式參加比賽,所以具體的程式碼請見(https://download.csdn.net/download/qq_40298054/10811547);
下面介紹一下公式推導的過程(以0<k<1 或者 -1<k<0為例),有興趣的同學可以瞭解:
Pn = f(x+1) - f(x) - 1/2 = kx+k+b-kx-b-1/2 = k-1/2 = (△y/△x)-1/2 = 2△y - △x
1.Pn<0
Pn+1 = f(x+2) - f(x) - 1/2 = kx+2k+b-kx-b-1/2 = 2k-1/2 = 2(△y/△x)-1/2 = 4△y - △x = Pn + 2△y
2.Pn>=0
Pn+1 = f(x+2) - f(x) - 1 - 1/2 = kx+2k+b-kx-b-1-1/2 = 2k-1-1/2 = 2(△y/△x)-1-1/2 = 4△y - 2△x - △x= Pn + 2(△y-△x)