锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

【斐波那契数列及螺线 基于C语言】

时间:2023-08-11 16:37:02 螺线管电感线绻

斐波那契数列及螺线 基于C语言

斐波那契数列:fn = f(n-1) f(n-2),(n>=3),f1=1,f2=1
用语言描述,就是任何一项都是前面两项的和,第一项是1,第二项是1,第三项开始,每一项都是前面两项的和。
fn=1、2、3、5、8、13、21、34、55、89、144…
斐波那契数列又称黄金分割数列。

斐波那契螺线

斐波那契螺线如下图:
斐波那契螺线

斐波那契螺线是什么?

如上图所示:斐波那契螺线由直线和圆弧组成。圆弧的半径为1、1、2、3、5、8、13…
也就是说,弧的半径是斐波那契数列的每一个项目。直线从原心开始,以弧的半径为长度,连接中心和弧起点。直线的方向是:右、上、左、下、右、上、左、下、右…
也就得出:
第n=0条直线向右:如果直线的起点是(500,500),以10个像素为单位,直线的终点是(510,500),弧的中心是(500,500),弧的起点是0度,终点是90度,半径是10;
第n=1项直线往上:直线的起点是(500,500),终点是(500,490),圆弧的圆心是(500,500),圆弧的起始角度是90度,终止角度是180度,半径是斐波那契数列的第二项1(此处为10,因为10个像素代表1)
第n=两条直线向左:直线的起点是(510,500),直线的终点是(490,500),圆弧的中心是(510,500),起点是180度,终点是270度,半径是斐波那契数列的第三项2(这里是20)。
第n=三条直线向下:直线的起点是(510,490),直线的终点是(510,520),弧的中心是(510,490),弧的起点是270度,终点是360度,半径是斐波那契数列的第三项3(这里是30)。
第n=四条直线向右:直线的起点是(490,490),直线的终点是(540,490),圆弧的中心是(490,490),圆弧的起点是360度,终点是450度,半径是斐波那契数列的第四项5(50)。

以此类推
第n=n项:如果n % 4 = 0 ,直线向右,直线的起点是(减去上一项的横坐标)f(n-2),上一项的纵坐标),直线的终点是(上一项的横坐标加上f(n-1),上一个纵坐标),圆弧的中心是直线的起点,圆弧的起始角度是90n终止角度为90度(n 1)度,弧的半径是斐波那契数列的N项 f(n).
如果n % 4 = 1 ,直线向上,直线的起点是(上项的横坐标,上项的纵坐标加上f(n-2),直线的终点是(上项的横坐标,上项的纵坐标减去f(n-1),圆弧的中心是直线的起点,圆弧的起始角度是90n终止角度为90度(n 1)度,弧的半径是斐波那契数列的N项f(n).
如果n % 4 = 2.直线向左,直线的起点是(上一项的横坐标加上f(n-2),上项纵坐标),直线的终点是(上项横坐标减去f(n-1),上一个纵坐标),圆弧的中心是直线的起点,圆弧的起始角度是90n终止角度为90度(n 1)度,弧的半径是斐波那契数列的N项f(n).
如果n % 4 = 3.直线向下,直线的起点是(上项的横坐标,上项的纵坐标减去f(n-2),直线的终点是(上项的横坐标,上项的纵坐标加上f(n-1),圆弧的中心是直线的起点,圆弧的起始角度是90n终止角度为90度(n 1)度,弧的半径是斐波那契数列的N项f(n).

二、代码如下

#include

int main()
{
initgraph(1000, 1000);
setbkcolor(WHITE);
setcolor(BLACK);
int x = 500, y = 500, x1 = 510, y1 = 500;
int a = 0, b = 10, c = 0;
for (int n = 0; x >= 0 || y >= 0; n )
{
line(x, y, x1, y1);
arc(x, y, 90 * n, 90 * (n 1), b);
x1 = x;
y1 = y;
switch (n % 4)
{
case 0:
y = y a;
y1 = y1 - b;
break;
case 1:
x = x a;
x1 = x1 - b;
break;
case 2:
y = y - a;
y1 = y1 b;
break;
case 3:
x = x - a;
x1 = x1 b;
break;
}
c = a b;
a = b;
b = c;
}
getch();
closegraph();
}

总结

这里用到了EGE画图模块,全称是Easy Graphics Engine,感谢作者提供的绘图模块。斐波那契螺线画完后,就像蜗牛一样。
以下是分析草图,有点乱。

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章