大小turtle.screensize(canvwidth=None, canvheight=None, bg=None)
canvwidth:画布的宽(单位像素,默认值400)
canvheight:画布的高(单位像素,默认值300)
背景颜色
1|t.screensize(800,600,'blue') 2|turtle.setup(width=0.5, height=0.75, startx=None, starty=None)2、画笔(pen) 2.1画笔(pen)的设置包括画笔属性(如尺寸、颜色)和画笔状态。Turtle模块已经定义了画笔属性和状态的函数。 (1)设置画笔属性
pensize() #设置画笔尺寸 speed(speed) #设置画笔移动速度 color(color) #设置画笔颜色
width()函数是pensize()函数的别名,它们具有相同的功能。
speed()函数的参数speed用于设置画笔移动的速度,其取值范围为[0,10]内的整数。数值越大,速度越快。
color()函数的参数用于设置画笔颜色,该参数值有以下几种表达方式:
-字符串,如"red",“orange”,“yellow”,“green”。
-RGB颜色,又分为RGB整数值和RGB小数值两种,整数值如(255,255,255),(190,213,98),小数值如(1,1,1),(0.65,0.7,0.9)。
-十六进制颜色,如"#FFFFFF","#0060F6"
-常见颜色表示方法及其对应关系
Turtle库中画笔分为提起(UP)和放下(DOWN)两种状态
import turtle turtle.penup() #提起画笔 turtle.pendown() #放下画笔 turtle.done()
turtle模块中penup()和pendown()函数定义了别名,penup()函数的别名为pu(),pendown()函数的别名为pd()。
3.绘制图形 3.1Turtle模块中画笔分为移动控制、角度控制、图形控制和图形填充3种。 (1)移动控制移动控制函数控制画笔向前、向后移动
foward(distance) #向前移动 backward(distance) #向后移动 goto(x,y=None) #移动到指定位置
函数forward()和backward()的参数distance用于指定画笔移动的距离,单位为像素;函数goto()用于将画笔移动到画布上指定的位置,该函数可以使用参数x、y分别接受表示目标位置的横坐标和纵坐标,也可以接受一个表示坐标向量的参数。
(2)角度控制角度控制函数可以更改笔画朝向
right(degree) #向右移动 left(degree) #向左移动 seth(angle) #转动到某个方向
函数right()和left()的参数degree用于指定画笔向右和向左转动的角度。函数seth()的参数angle用于设置画笔在坐标系中的角度。angle以x轴正向为0°,以逆时针为正,角度从0°逐渐增大;以顺时针方向为负,角度从0°逐渐减小。
若要使画笔向右或向左移动某段距离,应先调整画笔角度,在使用移动函数。
绘制边长为100像素的正方形
import turtle as t t.forward(100) t.seth(-90) t.forward(100) t.right(90) t.forward(100) t.left(-90) t.forward(100) t.right(90) turtle.done()
运行代码
turtle模块中提供了circle()函数,使用该函数可绘制以当前坐标为圆心,以指定像素值为半径的圆和弧。circle()函数的语法格式如下:
circle(radius,extent=None,steps=None
函数circle()的参数radius用于设置半径,extent用于设置弧的角度。radius和extent的取值可正可负;参数steps用于设置步长,若steps默认值为None步长将自动计算;若给出步长,circle()函数可用于绘制正多边形
(4)图形填充Turtle模块中可通过fillcolor()函数设置填充颜色,使用begin_fill()函数和end_fill()函数填充图形,实现“画”的绘制
填充一个红色的圆为例:
import turtle turtle.fillcolor("red") #设置填充颜色 turtle.begin_fill() #开始填充 turtle.circle(20) turtle.end_fill() #结束填充 turtle.done()三、用turtle绘制图形 1.绘制樱花
from turtle import * from random import * from math import * def tree(n,l): pd()#下笔 #阴影效果 t = cos(radians(heading()+45))/8+0.25 pencolor(t,t,t) pensize(n/3) forward(l)#画树枝 if n>0: b = random()*15+10 #右分支偏转角度 c = random()*15+10 #左分支偏转角度 d = l*(random()*0.25+0.7) #下一个分支的长度 #右转一定角度,画右分支 right(b) tree(n-1,d) #左转一定角度,画左分支 left(b+c) tree(n-1,d) #转回来 right(c) else: #画叶子 right(90) n=cos(radians(heading()-45))/4+0.5 pencolor(n,n*0.8,n*0.8) circle(3) left(90) #添加0.3倍的飘落叶子 if(random()>0.7): pu() #飘落 t = heading() an = -40 +random()*40 setheading(an) dis = int(800*random()*0.5 + 400*random()*0.3 + 200*random()*0.2) forward(dis) setheading(t) #画叶子 pd() right(90) n = cos(radians(heading()-45))/4+0.5 pencolor(n*0.5+0.5,0.4+n*0.4,0.4+n*0.4) circle(2) left(90) pu() #返回 t=heading() setheading(an) backward(dis) setheading(t) pu() backward(l)#退回 bgcolor(0.5,0.5,0.5)#背景色 ht()#隐藏turtle speed(0)#速度 1-10渐进,0 最快 tracer(0,0) pu()#抬笔 backward(100) left(90)#左转90度 pu()#抬笔 backward(300)#后退300 tree(12,100)#递归7层 done()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)