台式电脑

电脑上怎么样画半圆(画一个心送给心爱的小姐姐,Python绘图库Turtle)

Python绘图库Turtle

Turtle介绍

Turtle是Python内嵌的绘制线、圆以及其他形状(包括文本)的图形模块。

一个Turtle实际上是一个对象,在导入Turtle模块时,就创建了对象,然后,可以调用Turtle对象的各种方法完成不同的操作。

当创建一个Turtle对象时,它的位置被设定在(0,0)处——窗口的中心,而且它的方向被设置为向右。Turtle模块用笔来绘制图形,就像在现实的纸上画图写字。当移动笔的时候就会按着移动方向画线。

海龟图坐标详解

海龟图画图定位采用坐标系,坐标系的(0,0)位置在图纸的中间点。其他的跟我们在数学中学的坐标是一样的,分成四个象限。

如下图所示:

画一个心送给心爱的小姐姐,Python绘图库Turtle

Turtle基础

1.画布

设置画布大小与背景颜色

方法1:

turtle.screensize(canvwidth=None,canvheight=None,bg=None)

参数:分别为画布的宽(单位像素),高,背景颜色。

方法2:

turtle.setup(width=0.5,height=0.75,startx=None,starty=None)

参数:width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例,(startx,starty):这一坐标表示矩形窗口左上角顶点的位置,如果为空,则窗口位于屏幕中心

2.画笔

画笔设置:

画笔宽度turtle.pensize(int)参数是一个整形画笔颜色turtle.pencolor("black")参数可以是字符串如"green","red",也可以是RGB3元组画笔速度turtle.speed(speed)设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

3.绘图命令

海龟绘图命令可以划分为3种:一种为画笔运动命令,一种为画笔控制命令,还有一种是全局控制命令。

画笔运动命令:

命令

说明

turtle.forward(distance)/fd()

向当前画笔方向移动distance像素长度

turtle.backward(distance)

向当前画笔相反方向移动distance像素长度

turtle.right(degree)

顺时针移动degree°

turtle.left(degree)

逆时针移动degree°

turtle.pendown()

移动时绘制图形,缺省时也为绘制

turtle.goto(x,y)

将画笔移动到坐标为x,y的位置

turtle.penup()

提起笔移动,不绘制图形,用于另起一个地方绘制

turtle.circle()

画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

setx()

将当前x轴移动到指定位置

sety()

将当前y轴移动到指定位置

setheading(angle)/seth(angle)

设置当前朝向为angle角度

home()

设置当前画笔位置为原点,朝向东。

dot(r)

绘制一个指定直径和颜色的圆点

画笔控制命令:

命令

说明

turtle.fillcolor(colorstring)

绘制图形的填充颜色

turtle.color(color1,color2)

同时设置pencolor=color1,fillcolor=color2

turtle.filling()

返回当前是否在填充状态

turtle.begin_fill()

准备开始填充图形

turtle.end_fill()

填充完成

turtle.hideturtle()

隐藏画笔的turtle形状

turtle.showturtle()

显示画笔的turtle形状

turtle.begin_poly()

记录画笔的位置

turtle.get_poly()

获取画笔的位置

全局控制命令:

命令

说明

turtle.clear()

清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset()

清空窗口,重置turtle状态为起始状态

turtle.undo()

撤销上一个turtle动作

turtle.isvisible()

返回当前turtle是否可见

stamp()

复制当前图形

turtle.write(s,font=("font-name",font_size,"font_type")])

写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

turtle.mainloop()

绘制完成后不关闭窗口

案例:五角星

画一个心送给心爱的小姐姐,Python绘图库Turtle

五角星画法:

五角星每一个内角为36°,假如以海龟所在位置为起点先画一条横线,那么画到第一个角的时候需要拐弯可以使用turtle.right()顺时针,turtle.left()逆时针旋转画笔

如果使用顺时针旋转则180°-36°=144°

如果使用逆时针旋转则180°+36°=216°

五个角即循环五次即可

importturtle

turtle.pensize(3)#画笔大小

turtle.pencolor("yellow")#画笔颜色

turtle.fillcolor("red")#填充颜色

turtle.begin_fill()#开始填充

for_inrange(5):#五角星循环五次

turtle.forward(200)#五角星的边长200像素

turtle.left(144)#画笔旋转角度

turtle.end_fill()#填充完成

turtle.mainloop()#不关闭窗口

案例:爱心

画一个心送给心爱的小姐姐,Python绘图库Turtle

说明:桃心画法

画一个心送给心爱的小姐姐,Python绘图库Turtle

importturtle

turtle.setup(1200,600)#窗口大小

#画心

turtle.color("black","red")

turtle.pensize(2)

turtle.speed(10)

turtle.up()#提起画笔

turtle.goto(0,50)

turtle.down()

defdraw_heart(r,angle=45):

电脑上怎么样画半圆(画一个心送给心爱的小姐姐,Python绘图库Turtle)

"""

:paramr:桃心圆的半径

:paramangle:起始画笔角度

:return:返回桃心底部尖点坐标

"""

turtle.begin_fill()#开始填充

turtle.seth(0)

turtle.seth(angle)#设置画笔方向

turtle.circle(-r,180)#逆时针画半圆

turtle.fd(2*r)#向前移动

turtle.begin_poly()#记录画笔的位置

x,y=turtle.get_poly()[0]#获取画笔的位置

turtle.right(90)#逆时针旋转画笔

turtle.fd(2*r)#向前移动

turtle.circle(-r,180)

turtle.end_fill()#填充结束

returnx,y

#画桃心

x_y=[]

start_x=0

for_inrange(4):

turtle.goto(start_x,50)

turtle.down()#放下笔

x_y.append(draw_heart(8))

start_x+=50

turtle.up()#提起画笔

#画叶子

defdraw_flower(x,y):

"""

画桃心下的花

:paramx:桃心尖底的x轴

:paramy:桃心尖底的y轴

:return:

"""

turtle.up()

turtle.goto(x,y)

turtle.seth(0)#恢复画笔向右

turtle.seth(-90)

turtle.down()

turtle.fd(60)

turtle.goto(x,y)

turtle.right(60)

turtle.fd(20)

turtle.left(90)

turtle.fd(10)

turtle.left(120)

turtle.fd(20)

turtle.up()

turtle.goto(x,y)

turtle.seth(0)#恢复画笔向右

turtle.seth(-115)

turtle.down()

turtle.fd(25)

turtle.up()

turtle.goto(x,y)

turtle.seth(0)#恢复画笔向右

turtle.seth(-10)

turtle.down()

turtle.fd(20)

turtle.right(90)

turtle.fd(8)

turtle.right(120)

turtle.fd(20)

turtle.goto(x,y)

turtle.seth(-60)

turtle.fd(20)

turtle.up()

forx,yinx_y:

draw_flower(x,y)

#画小人物

turtle.up()

turtle.goto(-200,-50)

turtle.down()

turtle.seth(0)#恢复画笔向右,好控制方向

turtle.seth(45)

turtle.fd(40)

turtle.begin_poly()#记录画笔的位置,脚叉的位置

x,y=turtle.get_poly()[0]#获取画笔的位置

turtle.right(90)

turtle.fd(35)

turtle.goto(x,y)

turtle.left(135)

turtle.fd(90)

turtle.seth(0)

turtle.circle(30)#画圆

turtle.goto(x,y+60)#手的位置

turtle.fd(40)

turtle.circle(30,70)#画圆,拿花手的弧度

turtle.seth(0)

turtle.up()

turtle.goto(x,y+50)#手的位置

turtle.down()

turtle.fd(50)

turtle.begin_poly()#记录手的位置等下画花需要用

f_x,f_y=turtle.get_poly()[0]

#眼睛

turtle.up()

turtle.goto(x-15,y+120)#眼睛的位置

turtle.down()

turtle.pensize(4)

turtle.seth(45)

turtle.circle(-10,70)#画圆弧,拿花手的弧度

turtle.dot(10)#眼睛画圆

turtle.up()

turtle.goto(x+10,y+120)#眼睛的位置

turtle.down()

turtle.pensize(4)

turtle.seth(45)

turtle.circle(-10,70)#画圆弧,拿花手的弧度

turtle.dot(10)#眼睛画圆

turtle.up()

#嘴巴

turtle.goto(x,y+105)#眼睛的位置

turtle.down()

turtle.circle(10,70)#画圆弧,拿花手的弧度

#画里拿的花叶子部分

turtle.pensize(3)#将画笔大小

turtle.up()

turtle.goto(f_x,f_y)#手的位置

turtle.left(20)

turtle.down()

turtle.fd(60)

turtle.pensize(2)#将画笔调小

turtle.begin_poly()#记录手的位置等下画花需要用

x,y=turtle.get_poly()[0]

turtle.backward(80)

turtle.up()

turtle.goto(x,y)

turtle.down()

turtle.right(90)

turtle.fd(20)

turtle.right(90)

turtle.fd(8)

turtle.right(120)

turtle.fd(25)

turtle.right(200)

turtle.fd(25)

turtle.up()

turtle.goto(x,y)

turtle.down()

turtle.right(60)

turtle.fd(25)

turtle.goto(x,y)

turtle.right(40)

turtle.fd(25)

turtle.left(90)

turtle.fd(8)

turtle.left(110)

turtle.fd(25)

turtle.goto(f_x+34,f_y+75)

draw_heart(8,angle=20)#手里拿的桃心

#写文字

turtle.up()

turtle.goto(150,200)

turtle.pencolor("PINK")#画笔颜色

turtle.write("TO:所有同学",font=("方正舒体",30,'normal'))

turtle.goto(180,140)

turtle.write("送给棒棒的你",font=("方正舒体",30,'normal'))

turtle.hideturtle()

turtle.mainloop()

最后,小编想说:我是一名python开发工程师,整理了一套最新的python系统学习教程,想要这些资

料的可以关注私信小编“01”即可,希望能对你有所帮助

相关新闻

返回顶部