欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用 python3 turtle 绘制一个哆啦A梦

程序员文章站 2022-05-02 23:05:40
是使用pythonde turtle画的一个小猪佩奇,于是自己跟着画了一个哆啦a梦,算是只实现了头部的部分吧,如果有时间了会把代码改进。 源代码附上: import turtle as t i...

是使用pythonde turtle画的一个小猪佩奇,于是自己跟着画了一个哆啦a梦,算是只实现了头部的部分吧,如果有时间了会把代码改进。

源代码附上:

import turtle as t
import math as m

t.pensize(4) # 设置画笔的大小
t.colormode(255) # 设置gbk颜色范围为0-255
t.color((0,0,255),"blue") # 设置画笔颜色和填充颜色(pink)
t.setup(800,600) # 设置主窗口的大小为840*500
t.speed(10) # 设置画笔速度为10
#头部
t.hideturtle()
t.pu() # 提笔
t.goto(-50,0) # 画笔前往坐标(0,0)
t.seth(150)
t.pd() # 下笔
t.begin_fill()
t.color(0,0,255)
for i in range(300):
  t.rt(1)
  t.forward(2*m.pi*100/360)
t.seth(0)
t.backward(10)

t.seth(30)
for i in range(300):
  t.lt(1)
  t.forward(2*m.pi*80/360)
t.seth(0)
t.backward(10)
t.end_fill()
#眼睛
t.pu()
t.begin_fill()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(-15,40*m.sqrt(3)+60)
t.pd()
t.circle(15)
t.color(255,255,255)
t.end_fill()

t.pu()
t.begin_fill()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(-15,40*m.sqrt(3)+60)
t.pd()
t.circle(5)
t.color(0,0,0)
t.end_fill()

t.pu()
t.begin_fill()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(15,40*m.sqrt(3)+60)
t.pd()
t.circle(15)
t.color(255,255,255)
t.end_fill()

t.pu()
t.begin_fill()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(15,40*m.sqrt(3)+60)
t.pd()
t.circle(5)
t.color(0,0,0)
t.end_fill()


#鼻子
t.pu()
t.pensize(3)
t.pencolor(255,0,0)
t.goto(0,40*m.sqrt(3)+40)
t.pd()
t.begin_fill()
t.color(255,0,0)
t.circle(10)
t.end_fill()
#嘴巴
t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(0,40*m.sqrt(3)+40)
t.pd()
t.seth(-90)
t.forward(50)
t.pu()
t.goto(-50,90-10*m.sqrt(3))
t.seth(-30)
t.pd()
for i in range(60):
 t.lt(1)
 t.forward(2*m.pi*100/360)
 
 
#胡须
t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(-30,40*m.sqrt(3)+25)
t.seth(0)
t.pd()
t.backward(40)

t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(-30,40*m.sqrt(3)+15)
t.pd()
t.seth(30)
t.backward(40)

t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(-30,40*m.sqrt(3)+35)
t.pd()
t.seth(-30)
t.backward(40)

t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(30,40*m.sqrt(3)+25)
t.seth(0)
t.pd()
t.forward(40)



t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(30,40*m.sqrt(3)+35)
t.pd()
t.seth(30)
t.forward(40)

t.pu()
t.pensize(3)
t.pencolor(0,0,0)
t.goto(30,40*m.sqrt(3)+15)
t.pd()
t.seth(-30)
t.forward(40)

# a=0.4
# for i in range(360):
   # if 0<=i<90 or 180<=i<270:
       # a=a+0.008
       # t.lt(1) #向左转3度
       # t.fd(a) #向前走a的步长
   # else:
       # a=a-0.008
       # t.lt(1)
       # t.fd(a)
t.done()

效果图不大会粘贴,就只是粘一个结果吧