使用Turtle进行简单的绘图(乔巴)

from turtle import *

#画布
screensize(400,300,'grey')#设置画布大小及颜色
setup()#设置画布出现位置;数字为整数时,表示像素;为小数时,表示占据电脑屏幕的比例。

#标题
title('乔巴')

#画笔
#画笔:初始位置为画布中心,以画布中心为原点建立坐标系,以x轴为正方向
pensize(2)   #设置画笔的宽度尺寸
pencolor('black')#画笔颜色
speed(10)#画笔移动速度(0-10)(0最快)
# showturtle()#显示画笔形状
hideturtle()#隐藏画笔形状


#可以自定义函数方便填涂固定大小的图案
#例:
# def hs(x,y):
#     begin_fill()
#     fillcolor('black')
#     goto(x,y)
#     circle(5,360)
#     end_fill()
#
# penup()
# hs(10,100)
# hs(50,100)
# hs(90,100)
# hs(140,100)


#帽子
#第一笔
penup()#提笔
goto(-100,40)#落笔处
setheading(29)#画笔成30度(以x轴正方向开角度)
pendown()#落笔
circle(-204,58)#画弧线(-号代表顺时针绘图,第一位数为半径,圆心角对应弧长)
#第二笔
penup()
goto(-200,20)
setheading(42)
pendown()
circle(-300,84)
#第三笔
penup()
goto(-200,60)
setheading(42)
pendown()
circle(-300,84)
#第四笔
penup()
goto(-200,60)
setheading(-90)
pendown()
forward(40) #画直线(沿着笔的方向前行)
#第五笔
penup()
goto(200,60)
setheading(-90)
pendown()
forward(40)
#第六笔
penup()
goto(-150,200)
setheading(-90)
pendown()
forward(102)
#第七笔
penup()
goto(150,200)
setheading(-90)
pendown()
forward(102)
#第八笔
penup()
goto(-150,200)
setheading(52)
pendown()
circle(-190,104)
#左侧下帽檐
penup()
goto(-200,20)
setheading(-70)
pendown()
circle(100,85)
#右侧下帽檐
penup()
goto(198,20)
setheading(250)
pendown()
circle(-100,85)

#脸
#下巴
penup()
goto(-100,40)
setheading(-100)
pendown()
circle(100,200)
#鼻子
setheading(-90)
penup()
goto(-8.5,-10)
begin_fill()         #准备开始对以下绘制图案进行填充
fillcolor('black')   #绘制图案的填充颜色
#color(线条颜色,填充颜色) #可以直接用这个函数设定线条及填充颜色
pendown()
a = 0.05
for i in range(120):
    if 0<=i<30 or 60<=i<90:
        a=a+0.02
        lt(3) #每向左转3度
        fd(a) #向前走a的长度
    else:
        a=a-0.02
        lt(3)
        fd(a)
end_fill()           #颜色填充完成
#鼻沟
penup()
goto(0,-10)
setheading(-90)
pendown()
forward(20)
#左半嘴
penup()
goto(0,-30)
setheading(-120)
pendown()
circle(-15,100)
#右半嘴
penup()
goto(0,-30)
setheading(-60)
pendown()
circle(15,100)

#眼睛
#左眼
#眼珠
penup()
begin_fill()
goto(-50,25)
setheading(0)
pendown()
fillcolor('black')
circle(-15,360)
end_fill()
#眼白
penup()
goto(-50,32)
setheading(0)
pendown()
circle(-22,360)

#右眼
#眼珠
penup()
begin_fill()
goto(50,25)
setheading(0)
pendown()
fillcolor('black')
circle(-15,360)
end_fill()
#眼白
penup()
goto(50,32)
setheading(0)
pendown()
circle(-22,360)
#眉毛
#左
penup()
goto(-40,40)
setheading(-30)
pendown()
forward(20)
#右
penup()
goto(40,40)
setheading(-150)
pendown()
forward(20)

#鹿角
#左
penup()
goto(-150,190)
setheading(-160)
pendown()
circle(80,10)

penup()
goto(-163,183)
setheading(-90)
pendown()
circle(180,21)

penup()
goto(-163,183)
setheading(120)
pendown()
circle(10,130)

penup()
goto(-181,180)
setheading(-90)
pendown()
circle(180,23)

penup()
goto(-181,180)
setheading(120)
pendown()
circle(20,130)

penup()
goto(-217,176)
setheading(-90)
pendown()
circle(95,53)


#右
penup()
goto(150,190)
setheading(-20)
pendown()
circle(-80,10)

penup()
goto(163,183)
setheading(-90)
pendown()
circle(-180,21)

penup()
goto(163,183)
setheading(60)
pendown()
circle(-10,130)

penup()
goto(181,180)
setheading(-90)
pendown()
circle(-180,23)

penup()
goto(181,180)
setheading(60)
pendown()
circle(-20,130)

penup()
goto(217,176)
setheading(-90)
pendown()
circle(-95,53)

#耳朵
#左耳
penup()
goto(-150,110)
setheading(-195)
pendown()
circle(40,45)

penup()
goto(-180,105)
setheading(270)
pendown()
circle(20,70)

penup()
goto(-180,105)
setheading(-15)
pendown()
circle(-30,50)
#右耳
penup()
goto(150,110)
setheading(15)
pendown()
circle(-40,45)

penup()
goto(180,105)
setheading(-90)
pendown()
circle(-20,70)

penup()
goto(180,105)
setheading(-165)
pendown()
circle(30,50)

#身体
#左侧
penup()
goto(-48,-73)
setheading(-115)
pendown()
circle(200,30)

penup()
goto(-66,-176)
setheading(-75)
pendown()
circle(50,80)

penup()
goto(-13,-213)
setheading(70)
pendown()
circle(20,30)

#右侧
penup()
goto(48,-73)
setheading(-65)
pendown()
circle(-200,30)

penup()
goto(66,-176)
setheading(-105)
pendown()
circle(-50,80)

penup()
goto(13,-213)
setheading(110)
pendown()
circle(-20,30)

#肚子
penup()
goto(-30,-200)
setheading(-20)
pendown()
circle(80,42)

#左手
penup()
goto(-50,-65)
setheading(-135)
pendown()
circle(200,20)

penup()
goto(-90,-123)
setheading(-90)
pendown()
circle(40,40)

penup()
goto(-70,-110)
setheading(-70)
pendown()
circle(30,25)

penup()
goto(-83,-145)
setheading(-170)
pendown()
circle(15,76)

penup()
goto(-96,-160)
setheading(-35)
pendown()
circle(30,60)

#右手
penup()
goto(50,-65)
setheading(-45)
pendown()
forward(40)

penup()
goto(53,-85)
setheading(-45)
pendown()
forward(35)

penup()
goto(90,-80)
setheading(-150)
pendown()
circle(28,290)

penup()
goto(90,-80)
setheading(-60)
pendown()
forward(28)

penup()
goto(104,-105)
setheading(51)
pendown()
forward(30)

done()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值