python circle函数如何画圆_如何用Python画一只兔子——turtle库circle()画圆函数的详细用法介绍-Go语言中文社区...

周末学习了一下turtle库的基本函数,试着画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔。turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径、夹角画弧的方法有所不同。使用之后,便能理解circle()函数的巧妙。收获是:边想边做边改胜过完美的空想。

谢谢大家给我点了那么多赞,开心鸭~!❥❥❥❥(^_^)

如果想要了解其他turtle库绘画,请点击以下标题:

4da4f4dc008d64e41642804d60a43887.png

e18d5bdade9f1ade275bbc5bb5289bd9.png

302387f5c98375a40c83828812d40c40.png

52d1df56351a5a24af634be36d3d4df1.png

fe0426e5119fcd70acb49acf8202de59.png

c66cf7c3c37c86469e7914faeb14abb2.png

绘制效果如图 :

caa0c1d4082cf6efa030a88ef64fb2ba.png

在circle(radius,extent)函数中,参数radius取像素值、extent取角度的整数值,两参数均可取正负值。运行以下代码,可以直观地理解circle(radius,extent)函数参数正负值时的绘制特点:

from turtle import *

pensize(5)

pencolor('green')

circle(100,90)

pu()

goto(0,0)

seth(0)

pd()

pencolor('orange')

circle(100,-90)

pu()

goto(0,0)

seth(0)

pd()

pencolor('blue')

circle(-100,90)

pu()

goto(0,0)

seth(0)

pd()

pencolor('red')

circle(-100,-90)

circle()函数以画笔当前方向(y')为y轴方向,以经过画笔当前绝对坐标(x0,假设y0=0)、垂直于y轴的方向为x轴方向,则圆心(即原点)坐标为(x0-radius=0,0),由当前画笔位置(x0,y0)为弧线起始点,画出extent角度的圆弧。为了方便理解,我绘制了circle()函数的相对坐标体系,如下图。需要注意的是:radius为正时,圆心在当前位置左侧(如下图);radius为负时,圆心在当前位置右侧;extent为正时,顺画笔当前方向绘制,extent为负时,逆画笔当前方向绘制。

circle()函数可以以画笔当前位置为切点,画出与(画笔当前方向所在直线为)切线相切的任意圆弧。所以在绘制曲线时十分自由好用。抛下【用圆规先确定圆心再画圆】的惯常思维,慢慢使用便能理解circle()函数的巧妙。

以上为个人的学习理解,初识turtle,不当之处欢迎指正。

1a40abfad3cf733e5f1b7e5558b7731a.png

兔の绘图代码如下:

原创作品,仅供学习使用,侵权者自重!

#绘制大耳朵兔

from turtle import *

speed(10)

#小兔的面部

color('pink')

pensize(5)

circle(radius=100)#脸

#眼睛

pencolor('black')

#左眼

pu()

goto(-45,92)

pd()

begin_fill()

color((0,0,0),(0,0,0.1))

circle(radius=15)

#右眼

pu()

goto(45,92)

pd()

circle(radius=15)

end_fill()

#鼻子

pu()

goto(20,60)

color('pink')

pd()

begin_fill()

goto(-20,60)

goto(0,45)

goto(20,60)

end_fill()

#嘴

goto(0,45)

goto(0,40)

seth(-90)

circle(10,120)

pu()

goto(0,40)

seth(-90)

pd()

circle(-10,120)

#小兔的耳朵

#左耳

pu()

goto(-60,180)#

seth(200)

pd()

circle(radius=350,extent=90)

goto(-98,110)

#右耳

pu()

goto(60,180)#

seth(-20)

pd()

circle(radius=-350,extent=90)

goto(98,110)

#小兔的身体

pu()

goto(20,3)

seth(-25)

pd()

circle(radius=-250,extent=25)

circle(radius=-135,extent=260)

seth(50)

circle(radius=-250,extent=25)

##小兔的胳膊

#左臂

pu()

seth(180)

goto(-30,-3)

pd()

#小短胳膊

##circle(radius=270,extent=20)

##circle(radius=20,extent=190)

circle(radius=248,extent=30)

circle(radius=29,extent=185)

#右臂

pu()

seth(0)

goto(30,-3)

pd()

circle(radius=-248,extent=30)

circle(radius=-27,extent=184)

##小兔的脚

##左脚

pu()

goto(-162,-260)#

pd()

seth(0)

circle(radius=41)

#右脚

pu()

goto(164,-260)

pd()

circle(radius=41)

done()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值