diff --git a/Doraemon.py b/Doraemon.py new file mode 100644 index 0000000..a4f4d1a --- /dev/null +++ b/Doraemon.py @@ -0,0 +1,291 @@ +import turtle +def flyTo(x, y): + turtle.penup() + turtle.goto(x, y) + turtle.pendown() +def drawEye(): + turtle.tracer(False) + turtle.circle(30) + turtle.tracer(True) +def beard(): + """ 画胡子, 一共六根 + """ + # 左边第一根胡子 + flyTo(-35, 135) + turtle.seth(165) + turtle.fd(60) + + # 左边第二根胡子 + flyTo(-35, 125) + turtle.seth(180) + turtle.fd(60) + + # 左边第三根胡子 + flyTo(-35, 115) + turtle.seth(200) + turtle.fd(60) + + # 右边第一根胡子 + flyTo(35, 135) + turtle.seth(20) + turtle.fd(60) + + # 右边第二根胡子 + flyTo(35, 125) + turtle.seth(0) + turtle.fd(60) + + # 右边第三根胡子 + flyTo(35, 115) + turtle.seth(-20) + turtle.fd(60) +def drawRedScarf(): + """ 画围巾 + """ + turtle.fillcolor("red") # 填充颜色 + turtle.begin_fill() + turtle.seth(0) # 朝向右 + + turtle.fd(200) # 前进10个单位 + turtle.circle(-5, 90) + + turtle.fd(10) + turtle.circle(-5, 90) + + turtle.fd(207) + turtle.circle(-5, 90) + + turtle.fd(10) + turtle.circle(-5, 90) + + turtle.end_fill() + + +def drawMouse(): + flyTo(5, 150) + turtle.seth(270) + turtle.fd(100) + turtle.seth(0) + turtle.circle(120, 45) + flyTo(5,50) + turtle.seth(180) + turtle.circle(-120, 45) + + +def drawRedNose(): + flyTo(-10, 160) + turtle.fillcolor("red") # 填充颜色 + turtle.begin_fill() + turtle.circle(20) + turtle.end_fill() + + +def drawBlackdrawEye(): + turtle.seth(0) + flyTo(-20, 195) + turtle.fillcolor("black") # 填充颜色 + turtle.begin_fill() + turtle.circle(15) #左眼 + turtle.end_fill() + flyTo(20, 205) + turtle.seth(75) + turtle.circle(-10, 150) #右眼 + flyTo(-15, 200) + turtle.seth(0) + turtle.fillcolor("white") + turtle.begin_fill() + turtle.circle(5) #左眼眼珠 + turtle.end_fill() + flyTo(0, 0) + + +def drawFace(): + """ + """ + turtle.forward(185) # 前行185个单位 + turtle.fillcolor("white") # 填充颜色为白色 + turtle.begin_fill() # 开始填充 + turtle.left(45) # 左转45度 + turtle.circle(120, 100) # 右边那半边脸 + turtle.seth(90) # 朝向向上 + drawEye() # 画右眼睛 + turtle.seth(180) # 朝向左 + turtle.penup() # 抬笔 + turtle.fd(60) # 前行60 + turtle.pendown() # 落笔 + turtle.seth(90) # 朝向上 + drawEye() # 画左眼睛 + turtle.penup() # 抬笔 + turtle.seth(180) # 朝向左 + turtle.fd(64) # 前进64 + turtle.pendown() # 落笔 + turtle.seth(215) # 修改朝向 + turtle.circle(120, 100) # 左边那半边脸 + turtle.end_fill() # + + +def drawHead(): + """ 画了一个被切掉下半部分的圆 + """ + turtle.penup() # 抬笔 + turtle.circle(150, 40) # 画圆, 半径150,圆周角40 + turtle.pendown() # 落笔 + turtle.fillcolor("deepskyblue") # 填充色 + turtle.begin_fill() # 开始填充 + turtle.circle(150, 280) # 画圆,半径150, 圆周角280 + turtle.end_fill() + + +def drawAll(): + drawHead() + drawRedScarf() + drawFace() + drawRedNose() + drawMouse() + beard() + flyTo(0, 0) + turtle.seth(0) + turtle.penup() + turtle.circle(150, 50) + turtle.pendown() + turtle.seth(30) + turtle.fd(40) + turtle.seth(70) + turtle.circle(-30, 270) + turtle.fillcolor("deepskyblue") + turtle.begin_fill() + turtle.seth(230) + turtle.fd(80) + + turtle.seth(90) + turtle.circle(1000, 1) + + turtle.seth(-89) + turtle.circle(-1000, 10) + + turtle.seth(180) + turtle.fd(70) + + turtle.seth(90) + turtle.circle(30, 180) + + turtle.seth(180) + turtle.fd(70) + + turtle.seth(100) + turtle.circle(-1000, 9) + + turtle.seth(-86) + turtle.circle(1000, 2) + + turtle.seth(230) + turtle.fd(40) + turtle.circle(-30, 230) + + turtle.seth(45) + turtle.fd(81) + + turtle.seth(0) + turtle.fd(203) + + turtle.circle(5, 90)#围巾 + turtle.fd(10) + turtle.circle(5, 90)#围巾 + turtle.fd(7) + turtle.seth(40) + turtle.circle(150, 10)#脸颊 + turtle.seth(30) + turtle.fd(40) #手 + turtle.end_fill() + + # 左手 + turtle.seth(70) + turtle.fillcolor("white") + turtle.begin_fill() + turtle.circle(-30) + turtle.end_fill() + + # 脚 + flyTo(103, -182) + turtle.seth(0) + turtle.fillcolor("white") + turtle.begin_fill() + turtle.fd(15) + turtle.circle(-15, 180) + turtle.fd(90) + turtle.circle(-15, 180) + turtle.fd(10) + turtle.end_fill() + flyTo(-96, -182) + turtle.seth(180) + turtle.fillcolor("white") + turtle.begin_fill() + turtle.fd(15) + turtle.circle(15, 180) + turtle.fd(90) + turtle.circle(15, 180) + turtle.fd(10) + turtle.end_fill() + + # 右手 + flyTo(-133, -91) + turtle.seth(50) + turtle.fillcolor("white") + turtle.begin_fill() + turtle.circle(30) + turtle.end_fill() + + # 口袋 + flyTo(-103, 15) + turtle.seth(0) + turtle.fd(38) + turtle.seth(230) + turtle.begin_fill() + turtle.circle(90, 260) + turtle.end_fill() + flyTo(5, -40) + turtle.seth(0) + turtle.fd(70) + turtle.seth(-90) + turtle.circle(-70, 180) + turtle.seth(0) + turtle.fd(70) + + # 铃铛 + flyTo(-103, 15) + turtle.fd(90) + turtle.seth(70) + turtle.fillcolor("yellow") + turtle.begin_fill() + turtle.circle(-20) + turtle.end_fill() + turtle.seth(170) + turtle.fillcolor("yellow") + turtle.begin_fill() + turtle.circle(-2, 180) + turtle.seth(10) + turtle.circle(-100, 22) + turtle.circle(-2, 180) + turtle.seth(180 - 10) + turtle.circle(100, 22) + turtle.end_fill() + flyTo(-13, 15) + turtle.seth(250) + turtle.circle(20, 110) + turtle.seth(90) + turtle.fd(15) + turtle.dot(10) + flyTo(0, -150) + drawBlackdrawEye() + + +def main(): + turtle.screensize(800, 6000, "white") + turtle.pensize(3) + turtle.speed(3) + drawAll() + + +if __name__ == "__main__": + main() + turtle.mainloop()