Python-turtle库学习实践

今天刷中国大学慕课又看见了关于turtle库的介绍,于是就有兴趣写点东西画个图。

本想写完整名字后受制于水平限制遂放弃,因为并未完全掌握弧线的画法。

改为画简易的英文字母,并在强行写完一个字的情况下找了个其他大佬的代码加了朵玫瑰花作为装饰…

效果截图如下:
Python-turtle库学习实践_第1张图片
Python-turtle库学习实践_第2张图片
Python-turtle库学习实践_第3张图片

{
关于颜色RGB取值部分取自
https://www.sioe.cn/yingyong/yanse-rgb-16/
}

{
对于各个函数的用法查阅自
https://blog.csdn.net/qq_25360769/article/details/82787934
}

代码如下:

import time
from turtle import *
def timestop(n):
    time.sleep(n)     # 无聊,定义一个时间暂停函数
def move1(n,m):       # 移动当前画笔位置
    penup()
    hideturtle()
    goto(n,m)
    pendown()
    showturtle()
scale = 10            # 打印一个类似文本进度条
print("======执行开始======")
for i in range(scale+1):
    a = "*" * i
    b = "." * (scale - i)
    c = (i/scale) * 100
    print("{:^3.0f}%[{}->{}]".format(c,a,b))
    time.sleep(0.1)
print("======执行结束======")
print(" ")           # 打印一个无聊的倒计时
print("Please Wait 5 seconds")
for i in reversed(range(1,6)):
    print("-----→"+str(i)+"←-----")
    timestop(1)
setup(1000,550)   #定义画布尺寸及其颜色定义
getscreen()
bgcolor("#87CEEB")
shapesize(0.5)
shape("square")
pencolor("#FFC0CB")
pensize(3)
hideturtle()
penup()           #移动画笔到初始位置
bk(290)
left(90)
forward(150)
pendown()
showturtle()
timestop(1)
right(90)
#此下本为写字部分,后发现水平不够遂放弃
forward(220)    
move1(-250,100)
goto(-110,100)
move1(-305,50)
goto(-50,50)
move1(-100,210)
goto(-310,-25)
move1(-180,50)
goto(-130,0)
move1(-170,10)
goto(-235,-0.5)
move1(-260,-30)
goto(-150,-30)
move1(-200,5)
goto(-200,-90)
move1(-200,-30)
goto(-240,-75)

move1(-200,-30)
goto(-160,-60)

hideturtle() #此部分只有一个字 因为没有完全掌握弧线画法

time.sleep(2)
penup()
goto(200,-20) 




#以下为玫瑰花部分 借鉴自其他大神略加修改
penup()
left(90)
fd(200)
pendown()
right(90)
shape("circle")
shapesize(0.5)
pensize(1.5)
pencolor("#D2691E")

#1)花蕊部分
fillcolor("#FFC0CB")
begin_fill()
circle(10,180)
circle(25,110)
left(50)
circle(60,45)
circle(20,170)
right(24)
fd(30)
left(10)
circle(30,110)
fd(20)
left(40)
circle(90,70)
circle(30,150)
right(30)
fd(15)
circle(80,90)
left(15)
fd(45)
right(165)
fd(20)
left(155)
circle(150,80)
left(50)
circle(150,90)
time.sleep(1.5)
hideturtle()
end_fill()
showturtle()

#2)花瓣
left(150)
circle(-90,70)
left(20)
circle(75,105)
setheading(60)
circle(80,98)
circle(-90,40)
left(180)
circle(90,40)
circle(-80,98)
setheading(-83)

#3)叶子部分
fd(30)
left(90)
fd(25)
left(45)
fillcolor("#7CFC00")
begin_fill()
circle(-80,90)
right(90)
circle(-80,90)
end_fill()
 
right(135)
fd(60)
left(180)
fd(85)
left(90)
fd(50)
 
#3)叶子部分
right(90)
right(45)
fillcolor("#7CFC00")
begin_fill()
circle(80,90)
left(90)
circle(80,90)
end_fill()
 
left(135)
fd(60)
left(180)
fd(60)
right(90)
circle(200,20)
hideturtle()

#以下为字母部分
timestop(3)
reset()
shapesize(1) #箭头定义
shape("turtle")
pencolor("green")
pensize(2.5)
hideturtle()
penup()      #初始化位置
bk(200)
left(90)
forward(200)
pendown()
left(90)
showturtle()
timestop(1.5)
a = 1
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a+=0.2
        left(3)
        fd(a)
    else:
        a-=0.2
        lt(3)
        fd(a)
hideturtle()
left(90)
penup()
forward(140)
left(90)
forward(20)
pendown()
showturtle()
right(60)
forward(50)
hideturtle()
penup()
left(60)
forward(80)
left(90)
forward(90)
pendown()
right(140)
showturtle()
forward(110)
hideturtle()
penup()
left(140)
forward(90)
left(140)
pendown()
showturtle()
forward(110)
hideturtle()
penup()
left(140)
forward(150)
left(90)
forward(90)
right(135)
pendown()
showturtle()
forward(80)
hideturtle()
penup()
left(100)
forward(80)
right(180)
pendown()
showturtle()
forward(200)

#以下为画心部分
penup()
forward(70)
pendown()
right(180)
timestop(1.5)
left(45)
timestop(0.5)
right(135)
timestop(1.5)
shapesize(0.5)
shape("circle")
begin_fill()
color('red')
pensize(4)
pencolor("#FFB6C1")
left(35)
timestop(0.5)
left(180)
circle(40,135)
forward(100)
left(90)
hideturtle()
timestop(1)
showturtle()
timestop(1)
forward(100)
circle(40,225)
left(180)
circle(40,95)
hideturtle()
timestop(0.5)
end_fill()
done()

你可能感兴趣的:(turtle)