画多啦A梦

如何用Python画一个哆啦A梦

#coding=utf-8
#Drawcat 画多啦A梦
from turtle import *


# 无轨迹跳跃
def my_goto(x, y):
	penup()
	goto(x, y)
	pendown()

# 眼睛
def eyes():
	tracer(False)
	a = 2.5
	for i in range(120):
		if 0 <= i < 30 or 60 <= i < 90:
			a -= 0.05
			lt(3)
			fd(a)
		else:
			a += 0.05
			lt(3)
			fd(a)
	tracer(True)

# 胡须
def beard():
	my_goto(-37, 135)
	seth(165)
	fd(60)

	my_goto(-37, 125)
	seth(180)
	fd(60)

	my_goto(-37, 115)
	seth(193)
	fd(60)

	my_goto(37, 135)
	seth(15)
	fd(60)

	my_goto(37, 125)
	seth(0)
	fd(60)

	my_goto(37, 115)
	seth(-13)
	fd(60)

# 嘴巴
def mouth():
	my_goto(5, 148)
	seth(270)
	fd(100)
	seth(0)
	circle(120, 50)
	seth(230)
	circle(-120, 100)

# 围巾
def scarf():
	fillcolor('#e70010')
	begin_fill()
	seth(0)
	fd(200)
	circle(-5, 90)
	fd(10)
	circle(-5, 90)
	fd(207)
	circle(-5, 90)
	fd(10)
	circle(-5, 90)
	end_fill()

# 鼻子
def nose():
	my_goto(-10, 158)
	fillcolor('#e70010')
	begin_fill()
	circle(20)
	end_fill()

# 黑眼睛
def black_eyes():
	seth(0)
	my_goto(-20, 195)
	fillcolor('#000000')
	begin_fill()
	circle(13)
	end_fill()

	pensize(6)
	my_goto(20, 205)
	seth(75)
	circle(-10, 150)
	pensize(3)

	my_goto(-17, 200)
	seth(0)
	fillcolor('#ffffff')
	begin_fill()
	circle(5)
	end_fill()
	my_goto(0, 0)

 

# 脸
def face():
	fd(183)
	fillcolor('#ffffff')
	begin_fill()
	lt(45)
	circle(120, 100)

	seth(90)
	eyes()
	seth(180)
	penup()
	fd(60)
	pendown()
	seth(90)
	eyes()
	penup()
	seth(180)
	fd(64)
	pendown()
	seth(215)
	circle(120, 100)
	end_fill()

# 头型
def head():
	penup()
	circle(150, 40)
	pendown()
	fillcolor('#00a0de')
	begin_fill()
	circle(150, 280)
	end_fill()

# 画哆啦A梦
def Doraemon():
	# 头部
	head()

	# 围脖
	scarf()

	# 脸
	face()

	# 红鼻子
	nose()

	# 嘴巴
	mouth()

	# 胡须
	beard()

	# 身体
	my_goto(0, 0)
	seth(0)
	penup()
	circle(150, 50)
	pendown()
	seth(30)
	fd(40)
	seth(70)
	circle(-30, 270)


	fillcolor('#00a0de')
	begin_fill()

	seth(230)
	fd(80)
	seth(90)
	circle(1000, 1)
	seth(-89)
	circle(-1000, 10)

	# print(pos())

	seth(180)
	fd(70)
	seth(90)
	circle(30, 180)
	seth(180)
	fd(70)

	# print(pos())
	seth(100)
	circle(-1000, 9)

	seth(-86)
	circle(1000, 2)
	seth(230)
	fd(40)

	# print(pos())


	circle(-30, 230)
	seth(45)
	fd(81)
	seth(0)
	fd(203)
	circle(5, 90)
	fd(10)
	circle(5, 90)
	fd(7)
	seth(40)
	circle(150, 10)
	seth(30)
	fd(40)
	end_fill()

	# 左手
	seth(70)
	fillcolor('#ffffff')
	begin_fill()
	circle(-30)
	end_fill()

	# 脚
	my_goto(103.74, -182.59)
	seth(0)
	fillcolor('#ffffff')
	begin_fill()
	fd(15)
	circle(-15, 180)
	fd(90)
	circle(-15, 180)
	fd(10)
	end_fill()

	my_goto(-96.26, -182.59)
	seth(180)
	fillcolor('#ffffff')
	begin_fill()
	fd(15)
	circle(15, 180)
	fd(90)
	circle(15, 180)
	fd(10)
	end_fill()

	# 右手
	my_goto(-133.97, -91.81)
	seth(50)
	fillcolor('#ffffff')
	begin_fill()
	circle(30)
	end_fill()

	# 口袋
	my_goto(-103.42, 15.09)
	seth(0)
	fd(38)
	seth(230)
	begin_fill()
	circle(90, 260)
	end_fill()

	my_goto(5, -40)
	seth(0)
	fd(70)
	seth(-90)
	circle(-70, 180)
	seth(0)
	fd(70)

	#铃铛
	my_goto(-103.42, 15.09)
	fd(90)
	seth(70)
	fillcolor('#ffd200')
	# print(pos())
	begin_fill()
	circle(-20)
	end_fill()
	seth(170)
	fillcolor('#ffd200')
	begin_fill()
	circle(-2, 180)
	seth(10)
	circle(-100, 22)
	circle(-2, 180)
	seth(180-10)
	circle(100, 22)
	end_fill()
	goto(-13.42, 15.09)
	seth(250)
	circle(20, 110)
	seth(90)
	fd(15)
	dot(10)
	my_goto(0, -150)

	# 画眼睛
	black_eyes()

if __name__ == '__main__':
	screensize(800,600, "#f0f0f0")
	pensize(3)  # 画笔宽度
	speed(9)	# 画笔速度
	Doraemon()
	my_goto(230, -300)
	write('by Zayz', font=("Bradley Hand ITC", 30, "bold"))
	my_goto(230,200)
	mainloop()

发表评论