大家好,小编来为大家解答以下问题,用pythonturtle画简单的图案,python turtle画图代码大全,现在让我们一起来看看吧!
语言:
python
工具:
Pycharm 2021.3.2
文件:
main.py代码及解释:
导入文件floowers.py
import flowers
调用flowers的flower方法画10朵花(数目可以改“()”里的数值)
flowers.flower(10)
flowers.py代码及解释:
导入库:
turtle、random
代码:
导入turtle库
import turtle
导入random库,as **是把**作为random库来使用,即取名字。(后面ran就相当于random库)
import random as ran
定义一个方法flower(s是花的数量,以下均为方法体里的代码)
def flower(s):
将画笔上的箭头去掉(这里是简写,也可以写成"turtle.hideturtle()",效果一样)
turtle.ht()
*将箭头显示出来的代码是turtle.st()或是turtle.showturtle(),搞不懂方向的可以把箭头显示出来,方便一些神码ai火车头标题伪原创。
设置画笔的速度和粗细:
turtle.speed(9) turtle.pensize(3)
for循环,一次循环就是一朵花
for i in range(s):
画笔的颜色,即花的颜色(这里用random函数随机花的颜色,用turtle.color(r,g,b)来代替也行)
r = ran.random() g = ran.random() b = ran.random() turtle.pencolor(r, g, b)
将笔抬起来或者说离开画布(turtle.pu()也是可以的)
turtle.penup()
画笔移动到随机的位置通过坐标系定位,原始位置是(0,0)即原点(如果没有上一句,就会出现一条条线段)
turtle.goto(ran.randint(-400, 400), ran.randint(-250, 250))
画笔放下,开始画花了(也有简写turtle.pd())
turtle.pendown()
画花前的准备:
petal_num = ran.randint(10, 20) # 花瓣数 flower_size = ran.randint(10, 35)
画花的轮廓:
一次循环就是一个花瓣
turtle.forward(x)就是向前走x,即沿着当前方向走x(可以简写turtle.fd())
turtle.backward(x)就是向后走x,即沿着当前方向的反方向走x(可以简写turtle.bk())
turtle.right(x)就是当前方向顺时针旋转x°(可以简写成turtle.rt())
turtle.left(x)就是当前方向逆时针旋转x°(可以简写成turtle.lt())
for _ in range(petal_num): turtle.forward(flower_size) turtle.right(30) turtle.forward(flower_size / 2) turtle.left(60) turtle.backward(flower_size / 2) turtle.right(30) turtle.backward(flower_size) turtle.right(360 / petal_num)
轮廓里面的花芯(这里不是圆,仅仅是多边形):
turtle.right(90) for _ in range(petal_num): turtle.forward(flower_size / 2) turtle.right(360 / petal_num) turtle.left(90)
至此花画完了
结尾:
为了不出现一闪而过的结果加上
turtle.done()
搞不来缩进,就直接复制吧。
flower.py:
import turtle
import random as ran
def flower(s):
turtle.hideturtle()
turtle.speed(9)
turtle.pensize(3)
for i in range(s):
r = ran.random()
g = ran.random()
b = ran.random()
turtle.color(r, g, b)
turtle.penup() # 笔抬起
turtle.goto(ran.randint(-500, 500), ran.randint(-250, 250)) # 笔移动
turtle.pendown() # 笔落下
petal_num = ran.randint(10, 20) # 花瓣数
flower_size = ran.randint(10, 35) # 花瓣大小的影响因子
for _ in range(petal_num):
turtle.forward(flower_size) # 向当前方向移动snowflake_size距离
turtle.right(30)
turtle.forward(flower_size / 2)
turtle.lt(60)
turtle.backward(flower_size / 2)
turtle.right(30)
turtle.backward(flower_size) # 向当前方向的反方向移动snowflake_size距离
turtle.right(360 / petal_num) # 计算顺时针移动的度数
turtle.right(90)
for _ in range(petal_num):
turtle.forward(flower_size / 2)
turtle.right(360 / petal_num)
turtle.left(90)
turtle.done()
main.py:
import flowers
flowers.flower(60) # 画60朵花
这只是一个参考,有什么意见可以说一说。(不过我可能很少能回答,哈哈φ(>ω<*) )