Python:用turtle绘画

用python的turtle函数画一个小猪佩奇

代码如下

import turtle

t = turtle.Turtle()

t.speed(5)
t.pensize(3)
t.begin_fill()
t.color('black')
t.penup()

#猪-身-下
t.goto(-200,-200)
t.pendown()
t.forward(300)

#猪-身-左
t.goto(-200,-200)
t.left(90)
t.circle(-300,40)
t.right(50)
t.penup()

#猪-身-右
t.goto(100, -200)
t.pendown()
t.left(90)
t.circle(300,40)
t.left(230)
t.penup()

#猪-头-下
t.goto(-150,55)
# turtle.done()
t.pendown()
t.right(90)
t.circle(100,180)
t.penup()

#猪-头-上-左
t.goto(-150, 55)
t.pendown()
t.circle(-100,30)

#猪-左耳
t.left(90)
t.circle(-100, 30)
t.circle(-10, 90)
t.forward(10)
t.circle(-10, 90)
t.circle(-200, 13)
t.setheading(40)
t.circle(-300,10)

#猪-右耳
t.setheading(120)
t.circle(-100, 30)
t.circle(-10, 90)
t.forward(10)
t.circle(-10, 90)
t.circle(-200, 13)
t.setheading(30)
t.circle(-300, 25)
t.circle(-40, 160)
t.circle(-500,5)
t.penup()
# turtle.done()

#补全猪-右-脸
t.goto(50, 55)
t.setheading(90)
t.pendown()
t.circle(70, 46)

#猪-鼻子-左
t.penup()
t.goto(80, 125)
t.pendown()
t.setheading(180)
t.circle(-40,133)
t.penup()

#猪-鼻孔
t.goto(72, 160)
t.begin_fill()
t.color("black")
t.right(90)
t.pendown()
t.circle(6, 360)
t.end_fill()
t.penup()

t.goto(53, 150)
t.pendown()
t.begin_fill()
t.color("black")
t.circle(6,360)
t.end_fill()
t.penup()

#猪-眼睛
t.goto(-80, 120)
t.setheading(270)
t.pendown()
t.circle(15, 360)
t.penup()
#眼球
t.goto(-74, 120)
t.begin_fill()
t.color("black")
t.pendown()
t.circle(6, 360)
t.end_fill()
t.penup()

#猪-右眼
t.goto(-30, 135)
t.pendown()
t.circle(12, 360)
t.penup()

t.goto(-25, 135)
t.pendown()
t.begin_fill()
t.color("black")
t.circle(5, 360)
t.end_fill()
t.penup()

#嘴巴
t.goto(-60,30)
t.pendown()
t.setheading(320)
t.circle(50, 130)
t.penup()

#左手
t.goto(-160, -55)
t.pensize(6)
t.setheading(200)
t.pendown()
t.circle(500, 12)
t.circle(500, -3)
t.setheading(90)
t.circle(100, -18)
t.circle(100, 18)
t.setheading(130)
t.circle(100, 18)
t.circle(100, -18)
t.penup()

#右手
t.goto(60, -55)
t.setheading(330)
t.pendown()
t.circle(-500, 12)
t.circle(-500, -3)
t.setheading(30)
t.circle(-100,20)
t.circle(-100,-20)
t.setheading(250)
t.circle(100,18)
t.circle(100, -18)
t.penup()

#左脚
t.goto(-140, -200)
t.pendown()
t.setheading(270)
t.forward(50)
t.right(90)
t.pensize(20)
t.forward(10)
t.right(180)
t.forward(30)
t.penup()

#右脚
t.goto(60, -200)
t.pendown()
t.setheading(270)
t.pensize(6)
t.forward(50)
t.right(90)
t.pensize(20)
t.forward(10)
t.right(180)
t.forward(30)
t.penup()


#尾巴
t.pensize(6)
t.goto(-200, -160)
t.pendown()
t.setheading(180)
t.circle(-50, 30)
t.circle(-10, 310)
t.circle(-100, 10)
t.circle(-10,100)

turtle.done()

小猪佩奇身上好多线条理应用椭圆来构成,但是turtle函数本身没有画椭圆的函数,要是实在想用可以参考turtle画椭圆。我这里是直接用大半径的圆截上一个很小的角度来模拟椭圆的那一部分(本篇中我们暂且称之为模拟线段)。在模拟线段末尾保持turtle角度不变继续绘画的画也可以保证曲线平滑,不会看起来很奇怪。

成品如下

福岛小猪

(turtle处女作,吃藕是必然的。QAQ)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值