python实现绘制玫瑰花

turtle库介绍

画笔运动命令

命令												说明
turtle.forward(distance) 		向当前画笔方向移动distance像素长度
turtle.backward(distance)		向当前画笔相反方向移动distance像素长度
turtle.right(degree)			顺时针移动degree°
turtle.left(degree)				逆时针移动degree°
turtle.pendown()				移动时绘制图形,缺省时也为绘制
turtle.goto(x,y)				将画笔移动到坐标为x,y的位置
turtle.penup()					提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.circle()					画圆,半径为正(),表示圆心在画笔的左边(右边)画圆
setx( )							将当前x轴移动到指定位置
sety( )							将当前y轴移动到指定位置
setheading(angle)				设置当前朝向为angle角度
home()							设置当前画笔位置为原点,朝向东。
dot(r)							绘制一个指定直径和颜色的圆点

画笔控制命令

turtle.fillcolor(colorstring)		绘制图形的填充颜色
turtle.color(color1, color2)		同时设置pencolor=color1, fillcolor=color2
turtle.filling()					返回当前是否在填充状态
turtle.begin_fill()					准备开始填充图形
turtle.end_fill()					填充完成
turtle.hideturtle()					隐藏画笔的turtle形状
turtle.showturtle()					显示画笔的turtle形状
代码如下
import turtle as t
import time
def quxian(n,r,d=1):
    for i in range(n):
        t.left(d)
        t.circle(r,abs(d))
#设置笔的起始位置
s = 0.2
t.setup(450*5*s,750*5*s)
t.pencolor("black")
t.fillcolor("red") #绘制图形的填充颜色
t.speed(100)  #笔的移动速度
t.penup() #提笔,不绘制图形,用于在另外的地方绘制
t.goto(0,900*s)  #将画笔移动到指定的位置
t.pendown() #移动时绘制图案
# 绘制玫瑰花朵
t.begin_fill() #开始填充
t.circle(200*s,30)
quxian(60,50*s)
t.circle(200*s,30)
quxian(4,100*s)
t.circle(200*s,50)
quxian(50,50*s)
t.circle(350*s,65)
quxian(40,70*s)
t.circle(150*s,50)
quxian(20,50*s,-1)
t.circle(400*s,60)
quxian(18,50*s)
t.fd(250*s)
t.right(150)
t.circle(-500*s,12)
t.left(140)
t.circle(550*s,110)
t.left(27)
t.circle(650*s,100)
t.left(130)
t.circle(-300*s,20)
t.right(123)
t.circle(220*s,57)
t.end_fill()  #填充完成

#绘制枝干
t.left(120)  #逆时针移动120度
t.fd(280*s)
t.left(115)
t.circle(300*s,33)
t.left(180)
t.circle(-300*s,33)
quxian(70,225*s,-1)
t.circle(350*s,104)
t.left(90)
t.circle(200*s,105)
t.circle(-500*s,63)
t.penup() #提起画笔
#外部枝干
t.goto(170*s,-30*s)
t.pendown()
t.left(160)
quxian(20,2500*s)
quxian(220,250*s,-1)
#绘制右边的绿叶子
t.fillcolor("green")
t.penup()  #提笔
t.goto(670*s,-180*s) #笔重新定位
t.pendown() #下笔
t.right(140)#顺时针140度
t.begin_fill() #开始填充
t.circle(300*s,120)
t.left(60)
t.circle(300*s,120)
t.end_fill() #完成填充
t.penup()
t.goto(180*s,-550*s)
t.pendown()
t.right(85)
t.circle(600*s,40)
#绘制另外一个绿叶子
t.penup()
t.goto(-150*s,-1000*s)
t.pendown()
t.begin_fill()
t.rt(120)
t.circle(300*s,115)
t.left(75)
t.circle(300*s,100)
t.end_fill()
t.penup()
t.goto(430*s,-1070*s)
t.pendown()
t.right(30)
t.circle(-600*s,35)
t.done()
time.sleep(2)
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值