注:本文主要根据绘制步骤进行区分,实际使用时应当调节参数以绘制需要的图形。文中的步骤均为循环进行,循环50到100次,具体次数见代码示例。
1.前进+小角度旋转
绘制效果如图,如果旋转角度为360的因数则绘制出多边形。
代码示例
from turtle import *
Screen().colormode(255)
pencolor((155,80,90))
speed(0)
i=0
penup()
left(200)
forward(1100)
right(200)
pendown()
hideturtle()
pensize(2)
while i<100:
forward(400)
left(71)
# backward(800)
# left(8)
i+=1
done()
2.前进+大角度旋转
绘制效果如图,与小角度旋转相比图形中间的“圆”较小。
代码示例
from turtle import *
Screen().colormode(255)
pencolor((70,120,140))
speed(0)
i=0
penup()
left(200)
forward(600)
right(200)
pendown()
hideturtle()
pensize(2)
while i<100:
forward(800)
left(151)
# backward(800)
# left(8)
i+=1
done()
3.往复+旋转(前后移动距离相同)
绘制效果如图,得到多条中心交于一点的直线。
代码示例
from turtle import *
Screen().colormode(255)
pencolor((100,20,70))
speed(0)
i=0
hideturtle()
pensize(2)
while i<100:
forward(500)
backward(500)
left(6)
i+=1
done()
4.往复+旋转(前进、后退距离不同)
绘制效果如图,前进、后退距离的差越大,中心的“圆”越大。
示例代码
from turtle import *
Screen().colormode(255)
pencolor((155,120,50))
speed(0)
i=0
hideturtle()
pensize(2)
penup()
forward(300)
pendown()
while i<100:
forward(300)
backward(320)
left(6)
i+=1
done()
5.前进-旋转-后退-旋转(前后移动距离和旋转角度均相同)
绘制效果如图 ,旋转角度不是360的因数则多次循环绘制的图案更密集。
示例代码
from turtle import *
Screen().colormode(255)
pencolor((30,220,100))
speed(0)
i=0
penup()
pendown()
hideturtle()
pensize(2)
while i<50:
forward(800)
left(10.)
backward(800)
left(10)
i+=1
done()
6.前进-旋转-后退-旋转(前后移动距离不同,旋转角度相同)
绘制效果如图,前后移动距离的差越小,中心的“圆”越小。
示例代码:
from turtle import *
Screen().colormode(255)
pencolor((30,220,100))
speed(0)
i=0
penup()
right(200)
backward(300)
left(200)
pendown()
hideturtle()
pensize(2)
while i<50:
forward(800)
left(10)
backward(700)
left(10)
i+=1
done()
7.前进-旋转-后退-旋转(前后移动距离相同,旋转角度不同)
绘制效果如图,旋转角度相差越大,内外两组“齿”的长度相差越大。
示例代码:
from turtle import *
Screen().colormode(255)
pencolor((30,220,100))
speed(0)
i=0
penup()
pendown()
hideturtle()
pensize(2)
while i<80:
forward(700)
left(64)
backward(700)
left(54)
i+=1
done()
8.前进-旋转-后退-旋转(前后移动距离不同,旋转角度不同)
绘制效果如图。图形较为复杂,兼具前面两类图形的特性。
示例代码
from turtle import *
Screen().colormode(255)
pencolor((30,220,100))
speed(0)
i=0
penup()
right(200)
backward(300)
left(200)
pendown()
hideturtle()
pensize(2)
while i<60:
forward(800)
left(15)
backward(700)
left(10)
i+=1
done()