python的用处真的是太广泛了,今天在网上学习查找资料时,看到有网友用python来画画。用python画出一只兔子,为大家分享一下:如何用python画一只兔子?
画了一只大耳朵小兔子,灵感来源是jellycat邦尼兔。turtle库中circle()函数用来画弧,但和通常先确定原点,再根据半径、夹角画弧的方法有所不同。使用之后,便能理解circle()函数的巧妙。收获是:边想边做边改胜过完美的空想。
AAA软件教育
在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为负时,逆画笔当前方向绘制。
下面是绘制兔子的完整代码:
#绘制大耳朵兔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()———————————————— 现在个人学习python感觉越来越有趣,python太有实用性了