python用turtle画一个旋转的风车

您所在的位置:网站首页 python绘制自定义函数图像代码 python用turtle画一个旋转的风车

python用turtle画一个旋转的风车

2023-08-01 01:38| 来源: 网络整理| 查看: 265

上次用turtle做了一个爱心,这次我们来做一个旋转的风车,先放下图,看一下完成后的效果

1.gif

现在我们开始代码的编写

设计叶子

一片叶子我们用一深一浅两个三角形就可以实现了,下面以0度方向的叶子为例,我们写出的代码如下

1.png

用循环改为生成4个叶子

有了一个叶子,生成4个叶子也比较容易了,我们只要写一个循环,然后循环里用90的倍数去指定下方向角,剩下的绘制代码就一样了

2.png

加一个棒子

给风车的下面加一个稍稍粗一些的棒子,我们只要设置下画笔的粗细画一跟直线就可以了

3.png

风车的旋转

风车已经画完了,但是下面我们怎么才能让它转起来呢? 看到我们用循环出4个叶子的代码,在那里我们是指定了角度是90的倍数,把叶子的方向写成固定的了,如果我们把那个角度变成一个变化的变量,就可以让叶子往不同的角度转了。为方便使用,我们先定一个draw函数,让它可以接收自己指定的角度。

修改下大概是下面的代码

import turtle as t t.speed(0) def draw(r): # 画一个风车的棒子 t.pensize(4) # 棒子4像素粗 t.penup() t.goto(0,0) t.pendown() t.goto(0,-150) t.pensize(1) for i in range(4): t.setheading(i * 90 + r) t.penup() t.goto(0,0) t.pendown() # 浅蓝色三角形 t.fillcolor('#50B2F8') t.begin_fill() t.forward(100) t.left(150) t.forward(70) t.end_fill() # 靠近中心的深蓝色三角形 t.fillcolor('#063EC5') t.begin_fill() t.left(30) t.forward(40) t.left(90) t.forward(35) t.end_fill() draw(30) # 尝试不同的角度,叶子已经可以转到我们想要的角度了 t.done() 复制代码

角度可以变了,但是转动的动画还没有,这个要怎么做呢? 我们可以写一个循环去调用这个draw函数

for r in range(0,360*100,3): # 这里是旋转100圈,也可以用while循环,让它不停转,步长3对应的是转速,也可以改为1、2看看效果 t.tracer(False) t.clear() draw(r) time.sleep(0.01) t.hideturtle() t.tracer(True) 复制代码

好了,现在风车终于可以转起来了,最后我们贴下完成的代码

import turtle as t import time def draw(r): # 画一个风车的棒子 t.pensize(4) # 棒子4像素粗 t.penup() t.goto(0,0) t.pendown() t.goto(0,-150) t.pensize(1) for i in range(4): t.setheading(i * 90 + r) t.penup() t.goto(0,0) t.pendown() # 浅蓝色三角形 t.fillcolor('#50B2F8') t.begin_fill() t.forward(100) t.left(150) t.forward(70) t.end_fill() # 靠近中心的深蓝色三角形 t.fillcolor('#063EC5') t.begin_fill() t.left(30) t.forward(40) t.left(90) t.forward(35) t.end_fill() # 用速度1播放一次绘制过程 t.speed(1) draw(0) for r in range(0,360*100,3): # 这里是旋转100圈,也可以用while循环,让它不停转,步长3对应的是转速,也可以改为1、2看看效果 t.tracer(False) t.clear() draw(r) time.sleep(0.01) t.hideturtle() t.tracer(True) t.done() 复制代码


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3