Python Turtle绘图[难度2星]:多边形螺旋线(颜色交叉颜色分层)

时间: 2023-10-04 admin IT培训

Python Turtle绘图[难度2星]:多边形螺旋线(颜色交叉/颜色分层)

Python Turtle绘图[难度2星]:多边形螺旋线(颜色交叉/颜色分层)

 

我喜欢turtle绘图,因为代码一点点的改动,总会带来意想不到的惊喜。

一些让我心动过的案例,分享给大家,也珍藏给自己。

——Python教学路上的爬行者


   案例1:   

   多边形螺旋线(颜色交叉)  

【效果预览】

取色规律:多边形的每条边各取一种固定的颜色。

  【代码参考】 

# 【多边形螺旋线】  案例1
import turtle             # 导入turtle 库
turtle.bgcolor('black')   # 设置背景颜色为black
turtle.pensize(2)         # 设置画笔的粗细为2
turtle.speed(0)           # 设置海龟的绘图速度为0,最快
turtle.delay(0)           # 海龟绘图延迟时间设置为0,绘图速度最快sides=4                   # 定义变量sides,表示多边形的边数
colors=['red','yellow','blue','orange','green','purple']     # 创建颜色列表colors,其中包含6种颜色,# 所以边长sides最好不要超过6,# 如果边长超过6,建议再往颜色列表中添加其他颜色。# 如此,才可确保每一条边都使用不同的颜色。for i in range(400):      # 循环体要执行400次。变量i不仅控制循环次数,还要控制取色和步长。i将遍历0~399范围中的每一个数字。turtle.pencolor(colors[i%sides])    # 设置画笔颜色,将遍历colors列表中的前sides种颜色。turtle.forward(1.75*i)              # 设置海龟移动的步长为i的1.75倍,还可以尝试其他任意倍数。turtle.left(360/sides+2)            # sides=4时,向左旋转92度,还可尝试其他度数,如91°等。turtle.hideturtle( )      # 隐藏海龟

 

  【重难点突破】  

代码中定义了1个数字变量:i    

i 不仅要控制循环次数,还要控制取色和步长

pencolor(colors[i%4])

%,是算术运算符。功能是:取余,即返回除法的余数。

i % 4,它所有可能的结果是0,1,2,3

所以colors[i%4]将会取到颜色列表colors中索引是0到3的4种颜色(red,yellow,blue,orange),并遍历这4种颜色。

forward(1.75*i)

设置海龟移动的步长为i的1.75倍。你还可以尝试其他倍数,运行后看效果,确定出自己喜欢的倍数。

left(360/sides+2)

向左转90°会创建一个完美的正方形。每次向左转的比90°多一点点的话(在这个例子中,是92°),会将正方形略微向外抛出一点点。

由于进行下一次旋转的时候,已经偏离了一点点,随着程序继续进行,新的图形越来越不像是一个正方形。

实际上,它创建了一个开始向左旋转的,漂亮的螺旋形,就像是楼梯一样。

  【其他效果举例】 

图1:边数为2,左转181度

图2:边数为3,左转121度 

 图3:边数为4,左转91度

   案例2:   

   多边形螺旋线(颜色分层)  

【效果预览】

取色规律:先提取列表中的第一个颜色,循环若干次,然后再提取下一个颜色,继续循环若干次……

【代码参考】 

# 【多边形螺旋线】  案例2
import turtle             # 导入 turtle 库
turtle.bgcolor('black')   # 设置背景颜色为black
turtle.pensize(2)         # 设置画笔的粗细为 2
turtle.speed(0)           # 设置海龟的绘图速度为0,最快。
turtle.delay(0)           # 海龟绘图延迟时间设置为0,绘图速度最快。sides=4                   # 定义变量sides,表示多边形的边数
colors = ['orangered2','tomato','tan3','green1','seagreen','blue','blueviolet','darkorchid']  # 创建颜色列表colorsx = 0                        # 变量x控制步长。如果用i控制步长,那每次取色后,步长都会从0开始,海龟画出的将是另一种效果。
for color in colors:         # 变量color控制取色。颜色列表中有几种颜色,循环体就要执行几次。在这里颜色列表中有8种颜色,所以要循环8次。color将遍历颜色列表中的每一种颜色。turtle.pencolor(color)   # 设置画笔颜色,将遍历colors列表中的每一种颜色。for i in range(50):      # 循环体要执行50次。变量i控制循环次数。i将遍历0~49范围中的每一个数字x += 1                     # 将变量x增加1    turtle.forward(1.75*x)     # 设置海龟移动的步长为x的1.75倍,还可以尝试其他任意倍数。turtle.left(360/sides+2)   # sides=4时,向左旋转92度,还可尝试其他度数,如91°等。turtle.hideturtle( )         # 隐藏海龟

【重难点突破】

 代码中定义了3个数字变量:color,i,x  

变量color,控制取色;

变量i,控制循环的次数;

变量x,控制海龟移动的步长。如果和案例1中一样,用i控制步长,那每次取色后,步长都会从0开始,那海龟画出的将是另一种图形。

【其他效果举例】

图1:边数为2,左转181度

 图2:边数为3,左转121度

 图3:边数为4,左转91度

   turtle常用指令   

   turtle颜色设置   

在Python中,turtle绘图的颜色设置方式有三种。

举例:将画笔颜色pencolor设置为红色,方法如下:

pencolor("red" )

pencolor("ff0000" )

pencolor(255,0,0 )

在turtle模块(库)中与颜色有关的指令是:

bgcolor( ), color( ), pencolor( ),fillcolor( )

想了解更多颜色设置方面的知识或者想选择更丰富的颜色,可参考以下两篇文章:

Python专题 | turtle绘图颜色速查表

Python专题 | turtle颜色设置颜色搭配

——end——