Turtle
五角星的绘制
from turtle import *
fillcolor("red")
begin_fill()
while True:
forward(200)
right(144)
if abs(pos())<1:
break
end_fill()
done()
# 绘制五角星
p = Turtle()
p.speed(3)
p.pensize(5)
p.color("black", 'yellow')
#p.fillcolor("red")
p.begin_fill()
for i in range(5):
p.forward(200)
p.right(144)
p.end_fill()
太阳花的绘制
from turtle import *
color('red','yellow')
begin_fill()
while True:
forward(200)
left(170)
if abs(pos())<1:
break
end_fill()
done()
螺旋线绘制
import turtle
import time
turtle.speed("fastest")
turtle.pensize(2)
for x in range(100):
turtle.forward(2*x)
turtle.left(90)
time.sleep(3)
done()
彩色螺旋线的绘制
import turtle
import time
turtle.pensize(2)
turtle.bgcolor("black")
colors=["red","yellow",'purple','blue']
turtle.tracer(False)
for x in range(400):
turtle.forward(2*x)
turtle.color(colors[x % 4])
turtle.left(91)
turtle.tracer(True)
done()
蟒蛇的绘制
import turtle
## 等边三角形
for i in range(3):
turtle.seth(i*120) # 设置当前朝向为angle角度
turtle.fd(100) # 沿着当前方向前进指定距离
def drawSnake(rad, angle, len, neckrad):
for i in range(len):
turtle.circle(rad, angle) # 绘制一个指定半径,角度以及绘制步骤的圆
turtle.circle(-rad, angle)
# 参数rad描述圆形轨迹半径的位置
# 这个半径在小乌龟运行的左侧rad远位置处,如果rad为负值,则半径在小乌龟运行的右侧
# 参数angle表示小乌龟沿着圆形爬行的弧度值
turtle.circle(rad, angle/2)
# turtle.fd()函数也可以用turtle.forward()表示乌龟向前直线爬行移动
# 表示小乌龟向前直线爬行移动,它有一个参数表示爬行的距离
turtle.fd(rad)
turtle.circle(neckrad+1, 180)
turtle.fd(rad*2/3)
# main()函数给出了小乌龟爬行的窗体大小,爬行轨迹颜色和宽度以及初始爬行的方位。
def main():
# 开启窗口大小(启动一个图形窗口)
# turtle.setup(width, height, startx,starty)
# 启动窗口的宽度和高度,表示窗口启动时,窗口左上角在屏幕中的坐标位置
turtle.setup(1300, 800, 0, 0)
# 启动一个1300像素宽、800像素高的窗口,该窗口的左上角是屏幕的左上角。
# 小乌龟运行轨迹的宽度,为30像素
pythonsize = 30
# 设置画笔的宽度
turtle.pensize(pythonsize)
# 每个部分用不同颜色?绘制彩色蟒蛇
# 小乌龟运行轨迹的颜色
# turtle.pencolor(“#3B9909”)
turtle.pencolor("blue")
# 修改seth参数
# 小乌龟启动时运行的方向,参数是角度值
# 0表示向东,90度向北,180度向西,270度向南;负值表示相反方向
# 向东南方向40度
turtle.seth(-40)
# 调用drawSnake函数启动绘制蟒蛇功能
drawSnake(40,80,5,pythonsize/2)
main()
引入方式
import turtle
from turtle import *
控制画笔绘制状态的函数
pendown() | pd() | down()放下画笔
penup() | pu() | up()提起笔,用于另起一个地方绘制时用,与pendown()配对使用
pensize(wid ) | width(wid)设置画笔线条的粗细为指定大小
控制画笔颜色和字体函数
color()设置画笔的颜色
reset()清空当前窗口,并重置位置等状态为默认值
begin_fill()填充图形前,调用该方法
end_fill()填充图形结束
filling()返回填充的状态,True 为填充,False 为未填充
clear()清空当前窗口,但不改变当前画笔的位置
screensize()设置画布的长和宽
showturtle() | st()显示画笔的turtle 形状
hideturtle() | ht()隐藏画笔的turtle 形状
isvisible()如果turtle 可见,则返回True
write(arg,move=False,align="left",font =("Arial",8,"normal") )输出font 字体的字符串
控制画笔运动的函数
forward(distance) | fd(distance)沿着当前方向前进指定距离
backward(distance)| bk(distance)沿着当前相反方向后退指定距离
|back(distance)
right(angle) | rt(angle)向右旋转angle角度
left(angle) | lt(angle)
setheading(to_angle)设置当前朝向为angle角度
position() | pos()
goto(x,y )移动到绝对坐标(x,y)处
setposition(x,y ) | setpos(x,y )
circle(radius,extent ,steps )绘制一个指定半径,角度、以及绘制步骤step 的圆
dot(size ,*color) radians()绘制一个指定半径r 和颜色color 的圆点
stamp() speed(speed )
clearstamp(stamp_id)
clearstamps(n ) undo()
speed(speed ) heading()
towards(x,y ) distance(x,y )
xcor() ycor()
setx(x) sety(y)将当前x或y轴移动到指定位置
home()设置当前画笔位置为原点,朝向东
undo()撤销画笔最后一步动作
degrees(fullcircle = 360.0)
TurtleScreen/Screen类的函数
bgcolor(*args) getcanvas()
bgpic(picname ) getshapes()
clearscreen() turtles()
resetscreen() window_height()
screensize(cwid ,canvh,bg ) window_width()
tracer(n ,delay ) bye()
listen(xdummy ,ydummy ) exitonclick()
onkey((fun,key) title(titlestring)
onkeyrelease((fun,key) onkeypress(fun,key )
onscreenclick(fun,btn=1,add )
setup(wid=_CFG["wid"],h=_CFG["h"], startx=_CFG["leftright"], starty=_CFG["topbottom"])
绘制树或森林
drawtree.py, drawforest.py
七段数码管绘制
数码管是一种价格便宜、使用简单的发光电子器件,广泛应用在价格较低的电子类产品中,其中,七段数码管最为常用。七段数码管(seven-segment indicator)由7 段数码管拼接而成,每段有亮或不亮两种情况,改进型的七段数码管还包括一个小数点位置.
七段数码管能形成27=128 种不同状态,其中部分状态能够显示易于人们理解的数字或字母含义,因此被广泛使用。
该问题的IPO 描述如下: 输入:当前日期的数字形式 处理:根据每个数字绘制七段数码管表示 输出:绘制当前日期的七段数码管表示
DrawSevenSegDisplay.py, DrawSevenSegDisplay1.py
应用circle方法绘制图形ColorShapes.py
import turtle
def main():
turtle.pensize(3)
turtle.penup()
turtle.goto(-200,-50)
turtle.pendown()
# 修饰
turtle.begin_fill()
turtle.color("red")
turtle.circle(40, steps=3)
turtle.end_fill()
turtle.penup()
turtle.goto(-100,-50)
turtle.pendown()
# 修饰
turtle.begin_fill()
turtle.color("blue")
turtle.circle(40, steps=4)
turtle.end_fill()
turtle.penup()
turtle.goto(0,-50)
turtle.pendown()
# 修饰
turtle.begin_fill()
turtle.color("green")
turtle.circle(40, steps=5)
turtle.end_fill()
turtle.penup()
turtle.goto(100,-50)
turtle.pendown()
# 修饰
turtle.begin_fill()
turtle.color("yellow")
turtle.circle(40, steps=6)
turtle.end_fill()
turtle.penup()
turtle.goto(200,-50)
turtle.pendown()
# 修饰
turtle.begin_fill()
turtle.color("purple")
turtle.circle(40)
turtle.end_fill()
turtle.color("green")
turtle.penup()
turtle.goto(-100,50)
turtle.pendown()
turtle.write(("Cool Colorful shapes"),
font = ("Times", 18, "bold"))
turtle.hideturtle()
turtle.done
if __name__ == '__main__':
main()
时钟模拟
编写Python程序模拟时钟,要求时钟根据计算机系统时间实时动态更新。见clock.py
Turtle艺术
《雪景-Snowfall》绘制 随机因素: 雪花位置,雪花颜色,雪花大小,花瓣数目,地面灰色长短,地面灰色位置 见Snowfall.py 《Rainbow》绘制 颜色空间
RGB模型:
光的三原色
色相由RGB共同决定
HSV模型:
H色彩、 S深浅、V明暗
色相由H决定 见Rainbow.py
Last updated
Was this helpful?