python中turtle模块的实际应用场景_Python Turtle模块的简单应用

一、时钟

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值