1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python使用turtle库绘制一个100长度的十字架_python - 09【turtle库的使用(绘制小猪佩奇)】...

python使用turtle库绘制一个100长度的十字架_python - 09【turtle库的使用(绘制小猪佩奇)】...

时间:2024-01-12 06:18:59

相关推荐

python使用turtle库绘制一个100长度的十字架_python - 09【turtle库的使用(绘制小猪佩奇)】...

目录

1.turtle库

2.各个函数的使用

3.分析佩奇

1.turtle库

turtle(海龟)库是turtle绘图体系的Python实现

Python语言标准库之一

入门级图形绘制函数库

2.各个函数的使用

代码:

# -*- coding: utf-8 -*-

"""

Spyder Editor

This is a temporary script file.

"""

import turtle

'''

画布(canvas)

参数:

width宽度

height高度

bg背景

'''

#设置画布大小

turtle.screensize(800,800,"yellow")

#返回画布的大小

print(turtle.screensize())

'''

窗口大小

参数:

width窗口宽度

height窗口高度

startx窗口与屏幕横向的距离

starty窗口与屏幕纵向的距离

'''

#设置窗口大小(画布和窗口是不一样的,可以查看windows自带的画图)

turtle.setup(300,300,50,50)

#如果传入的值是小数,表示占据屏幕的比例

turtle.setup(0.5,0.5,50,50)

'''

画笔(pen),默认处于画布横轴与纵轴的中心点,即原点.

画笔属性:

'''

#笔的粗细

turtle.pensize(1)

#笔的颜色(值可以是字符串'green/red/yellow'等,也可以是RGB3元组)

turtle.pencolor("red")

#笔的移动速度,取值范围[0-10]

turtle.speed(10)

'''

绘图命令(即操控海龟命令),分3种:

1.移动命令

2.画笔控制命令

3.全局控制命令

tips:可以想象成一只海龟拿着画笔在图上画,我们操控这只海龟的移动、提笔放笔即可

'''

#海龟向当前方向移动,单位是像素

turtle.forward(100)

#海龟向当前的反方向移动

turtle.backward(200)

#海龟左旋转,单位是角度

turtle.left(30)

#海龟右旋转

turtle.right(60)

#海龟放下笔,只要移动就能绘画

turtle.pendown()

#海龟提笔,移动不会绘画

turtle.penup()

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

turtle.goto(100,50)

#单独设置x,y的位置

turtle.setx(200)

turtle.setx(300)

#画圆,参数是半径,正数逆时针画,负数正时针画

turtle.circle(10)

turtle.circle(-10)

'''

circle参数:

radius半径

extent弧度

steps内切正多边形

'''

#海龟放下笔,只要移动就能绘画

turtle.pendown()

#三角形

turtle.circle(50,steps=3)

#八角形

turtle.circle(50,steps=8)

#半圆

turtle.circle(120,180)

#设置当前朝向的角度

turtle.setheading(60)

#重置归位画笔

turtle.home()

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

turtle.dot(200,'blue')

'''

画笔控制命令

'''

#隐藏海龟

turtle.hideturtle()

#准备开始填充图形

turtle.begin_fill()

#绘制图形的填充颜色

turtle.circle(50) #画个圆进行填充

turtle.fillcolor('red')

#填充完成

turtle.end_fill()

#显示海龟

turtle.showturtle()

'''

全局控制命令

'''

#清空画布,但是turtle的位置和状态不会改变

turtle.clear()

#清空画布,并重置turtle

turtle.reset()

#撤销turtle上一个动作

turtle.undo()

#返回当前turtle是否可见

turtle.isvisible()

#复制当前图形

turtle.stamp()

#写文本,参数:文本内容,font=('字体参数',大小,'类型')

turtle.write('hello turtle',font=('Arial',20,'normal'))

'''

其他命令

'''

#设置海龟的模式并重置(参数:'standard'向右,‘logo’向上)

turtle.mode('logo')

#绘图延迟,单位毫秒

turtle.delay(50)

#开始记录多边形的顶点。当前的乌龟位置是多边形的第一个顶点。

turtle.begin_poly()

#停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连。

turtle.end_poly()

#返回最后记录的多边形。

turtle.get_poly()

#事件循环,必须添加的一个函数且必须在末尾,不然会出现问题

#turtle.mainloop()

turtle.done()

上面学习的函数基本满足画一个佩奇了。

3.分析佩奇

把眼、耳朵、脸、鼻孔等拆分成单独的函数

代码:

# -*- coding: utf-8 -*-

"""

Created on Fri Mar 8 20:59:05

@author: DataPro

"""

import turtle

def nose(x,y):#鼻子

penup()#提起笔

goto(x,y)#定位

pendown()#落笔,开始画

setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)

begin_fill()#准备开始填充图形

a=0.4

for i in range(120):

if 0<=i<30 or 60<=i<90:

a=a+0.08

left(3) #向左转3度

forward(a) #向前走a的步长

else:

a=a-0.08

left(3)

forward(a)

end_fill()#填充完成

penup()

setheading(90)

forward(25)

setheading(0)

forward(10)

pendown()

pencolor(255,155,192)#画笔颜色

setheading(10)

begin_fill()

circle(5)

color(160,82,45)#返回或设置pencolor和fillcolor

end_fill()

penup()

setheading(0)

forward(20)

pendown()

pencolor(255,155,192)

setheading(10)

begin_fill()

circle(5)

color(160,82,45)

end_fill()

def head(x,y):#头

color((255,155,192),"pink")

penup()

goto(x,y)

setheading(0)

pendown()

begin_fill()

setheading(180)

circle(300,-30)

circle(100,-60)

circle(80,-100)

circle(150,-20)

circle(60,-95)

setheading(161)

circle(-300,15)

penup()

goto(-100,100)

pendown()

setheading(-30)

a=0.4

for i in range(60):

if 0<=i<30 or 60<=i<90:

a=a+0.08

lt(3) #向左转3度

fd(a) #向前走a的步长

else:

a=a-0.08

lt(3)

fd(a)

end_fill()

def ears(x,y): #耳朵

color((255,155,192),"pink")

penup()

goto(x,y)

pendown()

begin_fill()

setheading(100)

circle(-50,50)

circle(-10,120)

circle(-50,54)

end_fill()

penup()

setheading(90)

forward(-12)

setheading(0)

forward(30)

pendown()

begin_fill()

setheading(100)

circle(-50,50)

circle(-10,120)

circle(-50,56)

end_fill()

def eyes(x,y):#眼睛 公众号 数据分析联盟

color((255,155,192),"white")

penup()

setheading(90)

forward(-20)

setheading(0)

forward(-95)

pendown()

begin_fill()

circle(15)

end_fill()

color("black")

penup()

setheading(90)

forward(12)

setheading(0)

forward(-3)

pendown()

begin_fill()

circle(3)

end_fill()

color((255,155,192),"white")

penup()

seth(90)

forward(-25)

seth(0)

forward(40)

pendown()

begin_fill()

circle(15)

end_fill()

color("black")

penup()

setheading(90)

forward(12)

setheading(0)

forward(-3)

pendown()

begin_fill()

circle(3)

end_fill()

def cheek(x,y):#腮 公众号 数据分析联盟

color((255,155,192))

penup()

goto(x,y)

pendown()

setheading(0)

begin_fill()

circle(30)

end_fill()

def mouth(x,y): #嘴 公众号 数据分析联盟

color(239,69,19)

penup()

goto(x,y)

pendown()

setheading(-80)

circle(30,40)

circle(40,80)

def body(x,y):#身体 公众号 数据分析联盟

color("red",(255,99,71))

penup()

goto(x,y)

pendown()

begin_fill()

setheading(-130)

circle(100,10)

circle(300,30)

setheading(0)

forward(230)

setheading(90)

circle(300,30)

circle(100,3)

color((255,155,192),(255,100,100))

setheading(-135)

circle(-80,63)

circle(-150,24)

end_fill()

def hands(x,y):#手 公众号 数据分析联盟

color((255,155,192))

penup()

goto(x,y)

pendown()

setheading(-160)

circle(300,15)

penup()

setheading(90)

forward(15)

setheading(0)

forward(0)

pendown()

setheading(-10)

circle(-20,90)

penup()

setheading(90)

forward(30)

setheading(0)

forward(237)

pendown()

setheading(-20)

circle(-300,15)

penup()

setheading(90)

forward(20)

setheading(0)

forward(0)

pendown()

setheading(-170)

circle(20,90)

def foot(x,y):#脚 公众号 数据分析联盟

pensize(10)

color((240,128,128))

penup()

goto(x,y)

pendown()

setheading(-90)

forward(40)

setheading(-180)

color("black")

pensize(15)

fd(20)

pensize(10)

color((240,128,128))

penup()

setheading(90)

forward(40)

setheading(0)

forward(90)

pendown()

setheading(-90)

forward(40)

setheading(-180)

color("black")

pensize(15)

fd(20)

def tail(x,y):#尾巴 公众号 数据分析联盟

pensize(4)

color((255,155,192))

penup()

goto(x,y)

pendown()

seth(0)

circle(70,20)

circle(10,330)

circle(70,30)

def setting(): #参数设置

pensize(4)

hideturtle() #使乌龟无形(隐藏)

colormode(255) #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内

color((255,155,192),"pink")

setup(840,500)

speed(10)

def main():

setting() #画布、画笔设置

nose(-100,100) #鼻子

head(-69,167) #头

ears(0,160) #耳朵

eyes(0,140) #眼睛

cheek(80,10) #腮

mouth(-20,30) #嘴

body(-32,-8) #身体

hands(-56,-45) #手

foot(2,-177) #脚

tail(148,-155) #尾巴

done()

main()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。