汇编语言实现等边三角形

汇编语言实现等边三角形

对于如何使用汇编语言绘制横线、竖线、斜线,在上文已经做了详细介绍,如果还未看过上文,请先阅读(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)

猜你喜欢

转载自blog.csdn.net/qq_40298054/article/details/84572696