Python实现新型冠状哆啦A梦

                在这里插入图片描述
                在这里插入图片描述

   ❤ 第一步:先来做两条辅助线,方便计算坐标,比例

#先画两条辅助线
w.create_line(0,300,600,300,dash=(4,4))
w.create_line(300,0,300,600,dash=(4,4))

在这里插入图片描述
   ❤第二步:在中间偏下的位置先画个蓝色的头(定个直径300)
   (坐标计算:因为定了直径为300,那么就是y轴左边减150,右边加150,x1=300-150=150,y1=300-200=100(这里不要减300,不然都跑到上半区了,这里减200,留100在下面),接着x2=300+150=450,y2=300+100=400。)

   所以(x1,y1) = (150,100) AND (x2,y2) =(450,300)

#蓝色头
w.create_rectangle(150,100,450,400,outline="black",dash=(4,4))
w.create_oval(150,100,450,400,outline="black",fill=Light_blue)

在这里插入图片描述
   ❤第三步:白色的脸蛋蛋(直径250)
   (坐标计算:脸是稍微比头小,下边还是重叠的,所以直径设为250就可了,那么x1=300-125=175,y1=300-150=150(因为下面部分是重叠的,要和上面留100,因为直径是250,所以就是减150咯),x2=300+125=425,y2=300+100=400。)

   所以(x1,y1) = (175,150) AND (x2,y2) =(425,400)

#白色大脸饼
w.create_rectangle(175,150,425,400,outline="black",dash=(4,4))
w.create_oval(175,150,425,400,outline="black",fill="white")

在这里插入图片描述
   ❤第四步:画两个椭圆的鸡蛋OO(长:65,宽50)
   (坐标计算:左眼–>x1=300-50,眼睛是要大脸饼高一些的,所以减个185(眼睛大小可以自己调,一旦这个确定了,后面的点就要根据你设定的长和宽来计算),y1=300-185=115,x2=300,y2=300-(185-65)=180,
   右眼–>x3=300,y3=300-185=115,x4=300+50=350,y4=300-(185-65)=180)

   所以左眼:(x1,y1) = (250,115) AND (x2,y2) =(300,180)
   所以左眼:(x1,y1) = (300,115) AND (x2,y2) =(350,180)

#两个鸡蛋眼睛
w.create_rectangle(250,115,300,180,outline="black",dash=(4,4))
w.create_oval(250,115,300,180,outline="black",fill="white")
w.create_rectangle(300,115,350,180,outline="black",dash=(4,4))
w.create_oval(300,115,350,180,outline="black",fill="white")

在这里插入图片描述
   ❤第五步:画两个黑乎乎的眼珠子(长:22,宽:15)
   坐标计算和第四步类似,不赘述

#两个眼珠子
#w.create_rectangle(280,137,295,159,outline="black",dash=(1,1))
w.create_oval(280,137,295,159,outline = "black",fill = "black")
#w.create_rectangle(305,137,320,159,outline="black",dash=(1,1))
w.create_oval(305,137,320,159,outline="black",fill="black")

在这里插入图片描述
   ❤第六步:画两个眼珠子里的白光(长:10,宽:5)

#两个眼珠子中的白光
w.create_oval
w.create_oval(285,145,290,155,fill='white')
w.create_oval(315,145,310,155,fill='white')

在这里插入图片描述
   ❤第七步:红色的鼻子(长:20,宽:20)
   (x1的话根据y轴的虚线,限定矩形左上角离y虚线不会太远,我这里有10像素的距离,x1=300-10=290,y1=300-130=170,因为下面那条虚线的位置到白色圆的距离是150,所以可以从127开始试,130刚好差不多,x2=300+10,y2=300-130+20=190)

   所以:(x1,y1) = (290,170) AND (x2,y2) =(310,190)

#红色鼻子
w.create_oval(290,170,310,190,outline="black",fill="red")

在这里插入图片描述
   ❤第八步:连到鼻子的直线
   (x1是和y轴虚线重叠的,所以x1=300,y1=190,190就是根据刚刚红色鼻子的y2,让他画到中心就好久是300,300)
   所以:(x1,y1) = (300,190) AND (x2,y2) =(300,300)

#连到鼻子上的黑线
w.create_line(300,190,300,300,fill='black',width=1)

在这里插入图片描述
   ❤第九步:弧线的嘴巴(从240°开始画,画60°的弧度)
   (前面是限定矩形,style指定弧线,start指定开始画弧线的起点,extend指定画弧线的弧度多大)

#弧线嘴巴
#w.create_rectangle(175,50,425,300,outline="black",dash=(4,4))
w.create_arc(175,50,425,300,width=1,style="arc",start=240,extent=60)

在这里插入图片描述
   ❤第十步:胡子(中间水平胡须长度80,两边短一些70)
   (胡子就是一共6条线,根据y轴虚线对称,那么设置左右离y虚线大概20,那可以先画左边三根,x1=(300-20-70),y1=(200)(因为他鼻子下方的高度是190,这里大概给个200),x2=(300-20),y2=(200+20),高度相差20就好
   中间胡子就很简单了x3=(300-20-80),y3=(200+40),x4=(300-20),y4=220+20
   接着第三根和第一根关于中间那根对称,则x5=(300-20-70,y5=(200+40+40), x6=(300-20),y6=(240+20)
   接着右边的胡子坐标就是x轴减的变加,y轴不变)

   所以:(x1,y1) = (210,200) AND (x2,y2) =(280,220)、(x3,y3) =(200,240)AND(x4,y4=(280,240))、(x5,y5) =(210,280)AND(x6,y6=(280,260)

#胡须--左边部分,从上到下
w.create_line(210,200,280,220,fill='black',width=1.5)
w.create_line(200,240,280,240,fill='black',width=1.5)
w.create_line(210,280,280,260,fill='black',width=1.5)
#胡须--右边部分
w.create_line(320,220,390,200,fill='black',width=1.5)
w.create_line(320,240,400,240,fill='black',width=1.5)
w.create_line(320,260,390,280,fill='black',width=1.5)

在这里插入图片描述
   ❤第十一步:画body(长220,宽200)
   (从中间对称来估算坐标,x1=300-110,y1=300+50(因为之前画圆下面是留100,这里取中间就好或者可以自己改),x2=300+110,y2=300+50+200)

#蓝色身体
w.create_rectangle(190,350,410,550,fill=Light_blue,outline="black")

   所以:(x1,y1) = (190,350) AND (x2,y2) =(410,550)
在这里插入图片描述

   ❤第十二步:画大肚囊(直径170)
   (从中间对称来估算坐标,x1=300-85,y1=300+40(身体是350,比身体高一些取340或者可以自己改),x2=300+85,y2=340+170)

   所以:(x1,y1) = (215,340) AND (x2,y2) =(385,510)

#白色圆腹部
#w.create_rectangle(215, 340,385,510,outline="black",dash=(4,4))
w.create_oval(215,340,385,510,outline="white",fill="white")

在这里插入图片描述

   ❤第十三步:画红色项圈(长度224)
   (就是画一条直线,设置一下capstyle选项为round就可以了,然后身体左上角坐标是190.这里稍微露出身体一些,设置188,y轴的坐标直接设置和身体的一样就可以了,右边的类似)

   所以:(x1,y1) = (198,350) AND (x2,y2) =(412,350)

#红色项圈
w.create_line(188,350,412,350,fill='red',width=15,capstyle='round')

在这里插入图片描述
   ❤第十四步:画铃铛(直径30)
   (也是根据对称来画,x1=300-15,y1的话大概比身体的350低一些就好,可以直接微调,我这里取y1=348,x2=300+15,y2=348+30)

   所以:(x1,y1) = (285,348) AND (x2,y2) =(315,378)

#铃铛部分,黄色
w.create_oval(285, 348,315,378,outline="black",fill="yellow")

在这里插入图片描述
   ❤第十五步:对铃铛进行点缀(矩形长度:28,宽:4 红圆直径:8)
   (首先画横线,x1=300-14=286,y1的坐标应该在身体350下面,慢慢调,这里我取y1=358,x2=300+14=314,y2=358+4=362
   接着画圆x3=300-4=296,x4=300+4=304,y3应该是在矩形下方一些,取y3=365,则y4=365+8=373
   黑色的线就是从红色圆下面373到铃铛下面378就可了)

#铃铛的黄色横线,使用的是矩形
w.create_rectangle(286,358,314,362,fill="yellow",outline="black")
#铃铛上的小红圆
w.create_oval(296, 365,304,373,outline="black",fill="red")
#竖直的黑线
w.create_line(300,373,300,378)

在这里插入图片描述

   ❤第十六步:扇形百宝袋(从180°开始画,弧度画180°)
   (原理和画嘴巴的弧一样,只是把style选项改为话扇形的)

#白色百宝袋
#w.create_rectangle(240, 365,360,485,outline="black",dash=(4,4))
w.create_arc(240, 365,360,485,width=1,start=180,extent=180,style="pieslice",outline='black',fill='white')

在这里插入图片描述
   ❤第十七步:画裤裆(从0°开始画,跨度180°)

#白色裤裆,也是扇形
w.create_arc(280, 530,320,570,width=1,start=0,extent=180,style="pieslice",outline='white',fill='white')

在这里插入图片描述

   ❤第十八步:画两个小脚丫(长:120 宽:40)
   (就是画两个椭圆,和画圆一样,在限定矩形内画,先画左边,再利用称把x坐标减变加就可以了)

#两只白色,椭圆,小脚丫
#w.create_rectangle(170, 530,290,570,outline="black",dash=(4,4))
w.create_oval(170, 530,290,570,outline="black",fill="white")
#w.create_rectangle(310, 530,430,570,outline="black",dash=(4,4))
w.create_oval(310, 530,430,570,outline="black",fill="white")

在这里插入图片描述
   ❤第十九步:画蓝色的胳膊,多边形,确定好四个点坐标
   (手臂的长度粗细什么的,可以自己调试,只要耐心点,都是找找坐标,慢慢调试)

#画手臂多边形
#手臂
points=[190,360,150,410,170,430,190,420]
w.create_polygon(points,outline="black",fill=Light_blue)

在这里插入图片描述
   ❤第二十步:圆手掌
   (这个主要注意限定矩形的左上角的纵坐标要对应外面手臂的纵坐标,限定矩形的右下角坐标的横坐标对应内部手臂的横坐标对应)

#手掌
#w.create_rectangle(130,410,170,450,outline="black",dash=(4,4))
w.create_oval(130,410,170,450, fill="white")

在这里插入图片描述
   ❤第二十一步:右边的手臂和手掌,这里画个简单的,对称的,也可以画举手手的,但是要有耐心慢慢调,这里对称的直接把x坐标减法变加法,y轴不变

#右手臂
points=[410,360,450,410,430,430,410,420]
w.create_polygon(points,outline="black",fill=Light_blue)
#右手掌
#w.create_rectangle(470,410,430,450,outline="black",dash=(4,4))
w.create_oval(470,410,430,450, fill="white")

在这里插入图片描述

#画皇冠
points2 = [220,110,200,50,240,65,300,20,360,65,400,50,380,110]
w.create_polygon(points2,outline="white",fill="yellow")
#顶部珠子直径24
w.create_oval(288,8,312,32,outline="white",fill="red")
#左边珠子直径14
w.create_oval(193,43,207,57,outline="white",fill="red")
#右边珠子直径14
w.create_oval(393,43,407,57,outline="white",fill="red")

#左边凹处
w.create_oval(238,63,242,67,outline="white",fill="yellow")
#右边凹处
w.create_oval(358,63,362,67,outline="white",fill="yellow")

在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述
                在这里插入图片描述

   ❤最后大家不要忘记,自己也要加油喔!!不要忘记了学习,嘿嘿,下面附上画哆啦A梦的源码给需要的盆友

from tkinter import *
root = Tk()
#实例化出画板对象
w = Canvas(root,width = 600,height = 600,background = "white")
w.pack()
#使用RGB设计浅蓝色
Light_blue ="#%02x%02x%02x" % (0, 159, 232)

#先画两条辅助线
w.create_line(0,300,600,300,dash=(4,4))
w.create_line(300,0,300,600,dash=(4,4))

#画皇冠
points2 = [220,110,200,50,240,65,300,20,360,65,400,50,380,110]
w.create_polygon(points2,outline="white",fill="yellow")
#顶部珠子直径24
w.create_oval(288,8,312,32,outline="white",fill="red")
#左边珠子直径14
w.create_oval(193,43,207,57,outline="white",fill="red")
#右边珠子直径14
w.create_oval(393,43,407,57,outline="white",fill="red")

#左边凹处
w.create_oval(238,63,242,67,outline="white",fill="yellow")
#右边凹处
w.create_oval(358,63,362,67,outline="white",fill="yellow")



#蓝色头
#w.create_rectangle(150,100,450,400,outline="black",dash=(4,4))
w.create_oval(150,100,450,400,outline="black",fill=Light_blue)

#白色大饼脸
#w.create_rectangle(175,150,425,400,outline="black",dash=(4,4))
w.create_oval(175,150,425,400,outline="black",fill="white")

#两个鸡蛋眼睛
#w.create_rectangle(250,115,300,180,outline="black",dash=(4,4))
w.create_oval(250,115,300,180,outline="black",fill="white")
#w.create_rectangle(300,115,350,180,outline="black",dash=(4,4))
w.create_oval(300,115,350,180,outline="black",fill="white")

#两个眼珠子
#w.create_rectangle(280,137,295,159,outline="black",dash=(1,1))
w.create_oval(280,137,295,159,outline = "black",fill = "black")
#w.create_rectangle(305,137,320,159,outline="black",dash=(1,1))
w.create_oval(305,137,320,159,outline="black",fill="black")

#两个眼珠子中的白光
w.create_oval
w.create_oval(285,145,290,155,fill='white')
w.create_oval(315,145,310,155,fill='white')

#红色鼻子
w.create_oval(290,170,310,190,outline="black",fill="red")

#连到鼻子上的黑线
w.create_line(300,190,300,300,fill='black',width=1)

#弧线嘴巴
#w.create_rectangle(175,50,425,300,outline="black",dash=(4,4))
w.create_arc(175,50,425,300,width=1,style="arc",start=240,extent=60)

#胡须--左边部分,从上到下
w.create_line(210,200,280,220,fill='black',width=1.5)
w.create_line(200,240,280,240,fill='black',width=1.5)
w.create_line(210,280,280,260,fill='black',width=1.5)
#胡须--右边部分
w.create_line(320,220,390,200,fill='black',width=1.5)
w.create_line(320,240,400,240,fill='black',width=1.5)
w.create_line(320,260,390,280,fill='black',width=1.5)

#蓝色身体
w.create_rectangle(190,350,410,550,fill=Light_blue,outline="black")

#白色圆腹部
#w.create_rectangle(215, 340,385,510,outline="black",dash=(4,4))
w.create_oval(215,340,385,510,outline="white",fill="white")

#红色项圈
w.create_line(188,350,412,350,fill='red',width=15,capstyle='round')

#铃铛部分,黄色
w.create_oval(285, 348,315,378,outline="black",fill="yellow")
#铃铛的黄色横线,使用的是矩形
w.create_rectangle(286,358,314,362,fill="yellow",outline="black")
#铃铛上的小红圆
w.create_oval(296, 365,304,373,outline="black",fill="red")
#竖直的黑线
w.create_line(300,373,300,378)

#白色百宝袋,扇形
#w.create_rectangle(240, 365,360,485,outline="black",dash=(4,4))
w.create_arc(240, 365,360,485,width=1,start=180,extent=180,style="pieslice",outline='black',fill='white')

#白色裤裆,也是扇形
w.create_arc(280, 530,320,570,width=1,start=0,extent=180,style="pieslice",outline='white',fill='white')

#两只白色,椭圆,小脚丫
#w.create_rectangle(170, 530,290,570,outline="black",dash=(4,4))
w.create_oval(170, 530,290,570,outline="black",fill="white")
#w.create_rectangle(310, 530,430,570,outline="black",dash=(4,4))
w.create_oval(310, 530,430,570,outline="black",fill="white")

#画手臂多边形
#手臂
points=[190,360,150,410,170,430,190,420]
w.create_polygon(points,outline="black",fill=Light_blue)
#手掌
#w.create_rectangle(130,410,170,450,outline="black",dash=(4,4))
w.create_oval(130,410,170,450, fill="white")

#右手臂
points=[410,360,450,410,430,430,410,420]
w.create_polygon(points,outline="black",fill=Light_blue)
#右手掌
#w.create_rectangle(470,410,430,450,outline="black",dash=(4,4))
w.create_oval(470,410,430,450, fill="white")

root.mainloop()

  • 15
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值