一、时钟
import turtle as t
import datetime as dt
#画出背景
game = t.Screen()
game.bgcolor("white")
game.setup(600,600)
game.tracer(0)
#定义画笔属性
pen = t.Turtle()
pen.speed(10)
pen.ht()
pen.up()
def draw_clock(h,m,s):
#画圈
pen.clear()
pen.up()
pen.color("black")
pen.pensize(3)
pen.seth(0)
pen.goto(0,-210)
pen.down()
pen.circle(210)
#画刻度
pen.up()
pen.goto(0,0)
pen.seth(90)
#大刻度
for _ in range(12):
pen.fd(190)
pen.down()
pen.fd(20)
pen.up()
pen.goto(0,0)
pen.rt(30)
#小刻度
for _ in range(60):
pen.up()
pen.goto(0,0)
pen.rt(6)
pen.fd(200)
pen.down()
pen.color(‘black‘)
pen.pensize(2)
pen.fd(10)
#画秒针
pen.up()
pen.home()
pen.down()
pen.color("red")
pen.pensize(3)
pen.seth(90)
pen.rt(s/60*360)
pen.fd(160)
pen.stamp()
#画分针
pen.up()
pen.home()
pen.down()
pen.color("Gold")
pen.pensize(3)
pen.seth(90)
pen.rt(m/60*360)
pen.fd(120)
pen.stamp()
#画时针
pen.up()
pen.home()
pen.down()
pen.color("Maroon")
pen.pensize(3)
pen.seth(90)
pen.rt(h/12*360)
pen.fd(80)
pen.stamp()
#问候字体
pen.up()
pen.goto(-175,250)
pen.color(‘orange‘)
font1 = (‘宋体‘,20,‘bold‘)
hello = "{}年你好!今天是{}月{}日".format(now.year,now.month,now.day)
pen.write(hello,"center",font=font1)
while True:
game.update()
now = dt.datetime.now()
draw_clock(now.hour,now.minute,now.second)
game.mainloop()
二、太极图
import turtle
def Taichi(R,r):
‘‘‘
R:整个大圆半径;
r:两个最小圆半径
‘‘‘
#大圆左白右黑
p.up()
p.goto(0,-R)
p.down()
p.pencolor(‘black‘)
p.fillcolor(‘black‘)
p.begin_fill()
p.circle(R,180)
p.end_fill()
p.pencolor(‘white‘)
p.fillcolor(‘white‘)
p.begin_fill()
p.circle(R,180)
p.end_fill()
#半圆下黑上白
p.pencolor(‘black‘)
p.fillcolor(‘black‘)
p.begin_fill()
p.circle(R/2,-180)
p.end_fill()
p.right(180)
p.pencolor(‘white‘)
p.fillcolor(‘white‘)
p.begin_fill()
p.circle(R/2,180)
p.end_fill()
#小圆上黑下白
p.up()
p.home()
p.goto(0,R/2-r)
p.down()
p.pencolor(‘black‘)
p.fillcolor(‘black‘)
p.begin_fill()
p.circle(r)
p.end_fill()
p.up()
p.goto(0,-(R/2+r))
p.down()
p.pencolor(‘white‘)
p.fillcolor(‘white‘)
p.begin_fill()
p.circle(r)
p.end_fill()
if __name__ == ‘__main__‘:
s = turtle.Screen()
s.bgcolor(‘Silver‘)
s.screensize(800,800)
p = turtle.Turtle()
p.shape(‘turtle‘)
p.ht()
s.tracer(10,0)
Taichi(200,30)
s.mainloop()
三、玫瑰
大部分都是通过调整圆半径、弧度和方向绘制的,过程需一步步尝试,比较繁琐,仅供参考
import turtle
#渐大
def increases(a,z,f):
#a:画笔起始大小;z:画笔终止大小;f:渐变拉伸距离
for i in range(a,z):
p.pensize(i)
p.forward(f)
#渐小
def smaller(a,z,f):
for i in range(a,z,-1):
p.pensize(i)
p.forward(f)
#花蕊
def flower():
#右下
p.up()
p.home()
p.goto(0,0)
p.pencolor(‘red‘)
p.left(15)
p.down()
increases(1,7,5)
p.circle(50,70)
p.forward(60)
p.circle(-100,15)
smaller(7,1,5)
#左下
p.up()
p.home()
p.goto(-20,0)
p.left(180)
p.down()
increases(1,7,5)
p.circle(-60,85)
p.forward(60)
p.circle(100,15)
smaller(7,1,5)
#右边
p.up()
p.home()
p.goto(80,250)
p.left(10)
p.down()
increases(1,5,5)
p.circle(-20,120)
p.circle(-130,20)
p.forward(50)
p.circle(100,15)
smaller(5,1,6)
#左边
p.up()
p.home()
p.goto(-110,240)
p.left(180)
p.down()
increases(1,5,5)
p.circle(30,130)
p.circle(130,15)
p.forward(20)
p.circle(-100,35)
smaller(5,1,7)
#左上
p.up()
p.home()
p.goto(0,270)
p.left(150)
p.down()
increases(1,5,5)
p.circle(60,120)
p.circle(60,30)
p.circle(-50,25)
smaller(5,1,5)
#右上
p.up()
p.home()
p.goto(8,271)
p.left(10)
p.down()
increases(1,5,5)
p.circle(-40,80)
p.circle(-30,90)
p.forward(5)
p.circle(250,25)
smaller(4,1,6)
#右中
p.up()
p.home()
p.goto(65,215)
p.left(-95)
p.down()
increases(1,5,5)
p.circle(200,6)
smaller(5,1,7)
#顶右1
p.up()
p.home()
p.goto(-10,260)
p.left(10)
p.down()
increases(1,5,5)
p.circle(-25,120)
p.circle(-20,40)
p.forward(15)
smaller(4,1,6)
#顶右2
p.up()
p.home()
p.goto(-20,240)
p.left(10)
p.down()
increases(1,5,5)
p.circle(-10,200)
smaller(4,1,6)
#顶左1
p.up()
p.home()
p.goto(-20,255)
p.left(165)
p.down()
increases(1,5,5)
p.forward(10)
p.circle(35,190)
p.circle(90,25)
smaller(4,1,5)
#顶左2
p.up()
p.home()
p.goto(-25,240)
p.left(170)
p.down()
increases(1,5,5)
p.circle(15,230)
smaller(4,1,6)
def leaf():
#叶子
#左1
p.pencolor(‘Green‘)
p.up()
p.home()
p.goto(-80,0)
p.left(220)
p.down()
increases(1,5,5)
p.circle(80,50)
p.circle(-80,60)
smaller(4,1,5)
#左2
p.right(210)
increases(1,5,5)
p.circle(70,80)
p.circle(-100,40)
smaller(4,1,5)
#左3
p.right(100)
increases(1,5,5)
p.circle(-200,40)
smaller(4,1,5)
#左4
p.left(155)
increases(1,5,5)
p.circle(200,45)
smaller(4,1,5)
#右1
p.up()
p.home()
p.goto(45,8)
p.right(45)
p.down()
increases(1,5,5)
p.circle(-300,20)
p.circle(100,40)
smaller(4,1,5)
#右2
p.left(200)
increases(1,5,5)
p.circle(-100,60)
p.circle(70,20)
smaller(5,1,7)
#小叶
p.up()
p.home()
p.goto(70,30)
p.left(20)
p.down()
increases(1,5,5)
p.circle(50,30)
smaller(4,1,5)
p.right(150)
increases(1,5,5)
p.circle(-50,70)
smaller(4,1,5)
#花柄
p.up()
p.home()
p.goto(-30,-60)
p.down()
p.right(80)
increases(1,5,5)
p.circle(-700,20)
p.fd(60)
smaller(4,1,5)
p.up()
p.home()
p.goto(10,-170)
p.down()
p.right(90)
increases(1,5,5)
p.circle(-700,10)
p.fd(55)
smaller(4,1,5)
#刺
p.up()
p.home()
p.goto(-25,-250)
p.down()
p.left(125)
increases(1,5,5)
p.fd(10)
smaller(5,1,5)
p.left(165)
increases(1,5,5)
p.fd(40)
smaller(5,1,5)
#画布设置
s = turtle.Screen()
s.bgcolor(‘LightYellow‘)
s.setup(1400,800)
s.title(‘送你花花‘)
s.tracer(1,10)
#画笔设置
p = turtle.Turtle()
p.shape(‘turtle‘)
p.speed(‘fastest‘)
p.ht()
#画花和叶
flower()
leaf()
s.mainloop()
原文:https://www.cnblogs.com/Archer-Xin/p/12222476.html