失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python海龟画笔如何运行_Python海龟绘图:turtle的简单使用

python海龟画笔如何运行_Python海龟绘图:turtle的简单使用

时间:2019-10-01 01:12:38

相关推荐

python海龟画笔如何运行_Python海龟绘图:turtle的简单使用

Python海龟绘图:turtle的简单使用

Python海龟绘图:turtle的简单使用

? ?Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

? ?使用时需要添加头文件

import turtle

一、画布(canvas)

? ?画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置

设置画布的大小:

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

canvwidth:画布的宽(单位像素,默认值400)

canvheight:画布的高(单位像素,默认值300)

bg:背景颜色

使用:

t.screensize(800,600,'blue')

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

width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例

startx, starty: 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

使用:

turtle.setup(width=0.9, height=0.9)

turtle.setup(0.9,0.9)#和上面代码效果相同

turtle.setup(width=800, height=800, startx=100, starty=100)

二、画笔

2.1画笔的状态

? ?在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟.

? ?这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

2.2 画笔的属性

画笔(画笔的属性,颜色、画线的宽度)

turtle.pensize():设置画笔的宽度;

turtle.pencolor(); 没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", “red”,也可以是RGB 3元组

turtle.speed(speed): 设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快

2.3 绘图命令

? ?操纵海龟绘图有着许多的命令,这些命令可以划分为3种:一种为运动命令,一种为画笔控制命令,还有一种是全局控制命令

1、画笔运动的命令:

2、画笔控制命令

3、全局控制命令

4、其他命令

三、circle函数

以给定半径画圆

turtle.circle(radius, extent=None, steps=None)

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

extent(弧度) (optional);

steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)

举例:

turtle.circle(50) # 整圆;

turtle.circle(50,steps=3) # 三角形;

turtle.circle(120, 180) # 半圆

四、绘图举例

奥运五环

实现代码

import turtle as t

#直接到达坐标x,y的位置

def go(x,y) :

t.penup()

t.goto(x,y)

t.pendown()

#设置画布大小、画笔大小、画笔粗细

def pen() :

t.screensize(0.99, 0.99)

t.pensize(10)

t.speed(10)

def main() :

pen()

pencolor = ['blue','black','red','yellow','green']#列表存储画笔颜色

x = -450

y = 0

for i in range(5) :

if i == 3 :

x = -225

y = -150

if i < 3 :

go(x + i * 450,y)

t.pencolor(pencolor[i])

t.circle(200)

else :

go(x + ( i - 3 ) * 450, y)

t.pencolor(pencolor[i])

t.circle(200)

if __name__ == '__main__':

main()

520

实现代码

from turtle import *

def go_to(x, y):

up()

goto(x, y)

down()

def big_Circle(size): #函数用于绘制心的大圆

speed(10)

for i in range(150):

forward(size)

right(0.3)

def small_Circle(size): #函数用于绘制心的小圆

speed(10)

for i in range(210):

forward(size)

right(0.786)

def line(size):

speed(10)

forward(51*size)

def heart( x, y, size):

go_to(x, y)

left(150)

begin_fill()

line(size)

big_Circle(size)

small_Circle(size)

left(120)

small_Circle(size)

big_Circle(size)

line(size)

end_fill()

def arrow():

pensize(10)

setheading(0)

go_to(-400, 0)

left(15)

forward(150)

go_to(339, 178)

forward(150)

def arrowHead():

pensize(1)

speed(10)

color('red', 'red')

begin_fill()

left(120)

forward(20)

right(150)

forward(35)

right(120)

forward(35)

right(150)

forward(20)

end_fill()

def main():

pensize(2)

color('red', 'pink')

#getscreen().tracer(30, 0) #取消注释后,快速显示图案

heart(200, 0, 1) #画出第一颗心,前面两个参数控制心的位置,函数最后一个参数可控制心的大小

setheading(0) #使画笔的方向朝向x轴正方向

heart(-80, -100, 1.5) #画出第二颗心

arrow() #画出穿过两颗心的直线

arrowHead() #画出箭的箭头

go_to(400, -300)

done()

if __name__ == '__main__':

main()

小猪佩奇

实现代码

from turtle import*

speed(10)

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(): #参数设置

speed(99)

pensize(4)

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

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

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

setup(840,500)

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()

if __name__ == '__main__':

main()

Python海龟绘图:turtle的简单使用相关教程

如果觉得《python海龟画笔如何运行_Python海龟绘图:turtle的简单使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

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