了解过turtle的都知道怎么画圆,下面画一个简单的圆:
color("red") # 画笔颜色为红色
circle(30) # 画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆
done() # 启动事件循环 必须是乌龟图形程序中的最后一个语句。
既然我们没有办法一次性画圆,我们可以画多个边每次旋转3°就可完成一个圆,360/3 = 120
可以知道我们要画120条边来完成一个椭圆,话不多说上代码:
from turtle import *
a = 1 # 前进的长度
for i in range(120):
left(3) # 向左转3度
forward(a) # 向前走a的步长
mainloop()
这样我们就会得到一个120条边的圆
用turtle画正n边形。n取决于range()的取值。只要确保range()是正整数且两数相乘等于360,就可以做出来正n边型
要想画出椭圆,画笔在不同的角度的时候前进的长度不一样,可以把椭圆分成4部分,A、B、C、D。
可以看到从A->B弧度原来越大,B->C弧度越来越小,从c->d, d->a同理。那么我们要怎么控制呢?难道要写四段代码吗?其实不需要。
从上段代码中我们可以看到,我们是循环出来的,那么我只需要判断在A->B区间与D->A区间让a变大就可以
同样在b->c,d->a区间变小就可以,话不多说上代码:
from turtle import *
a=0.4
for i in range(120):
if 0 <= i< 30 or 60<= i < 90:
a = a + 0.08
left(3)
forward(a)
else:
a = a - 0.08
left(3)
forward(a)
mainloop()