python海龟作图红绿灯_海龟作图---用Python绘图

一、关于Turtle

“turtle是一个简单的绘图工具。它提供了一个海龟,你可以把它理解为一个机器人,只听得懂有限的指令”

操纵海龟绘图有着许多的命令,这些命令可以划分为两种:一种为运动命令,一种为画笔控制命令。

二、运动命令

forward(degree)

#向前移动距离degree代表距离

backward(degree)

#向后移动距离degree代表距离

right(degree)

#向右移动多少度

left(degree)

#向左移动多少度

goto(x,y)

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

speed(speed)

#画笔绘制的速度范围[0,10]整数

三、画笔控制命令

down()

画笔落下,移动时绘制图形

up()

画笔抬起,移动时不绘制图形

setheading(degree)

海龟朝向,degree代表角度

reset()

恢复所有设置

pensize(width)

画笔的宽度

pencolor(colorstring)

画笔的颜色

fillcolor(colorstring)

绘制图形的填充颜色

fill(True)

fill(False)

四、程序体验

1.奥运五环

代码:

#绘制奥运五环

import turtle

turtle.width(15) #画笔粗细

turtle.color("blue")

turtle.circle(50)

turtle.penup()

turtle.goto(120,0)

turtle.down()

turtle.color("black")

turtle.circle(50)

turtle.penup()

turtle.goto(240,0)

turtle.down()

turtle.color("red")

turtle.circle(50)

turtle.penup()

turtle.goto(60,-50)

turtle.down()

turtle.color("yellow")

turtle.circle(50)

turtle.penup()

turtle.goto(180,-50)

turtle.down()

turtle.color("green")

turtle.circle(50)

显示效果:

20200426120639090354.png

2.使用递归,可以绘制出非常复杂的图形。例如,下面的代码可以绘制一棵分型树:

from turtle import *

# 设置色彩模式是RGB:

colormode(255)

lt(90)

lv = 14

l = 120

s = 45

width(lv)

# 初始化RGB颜色:

r = 0

g = 0

b = 0

pencolor(r, g, b)

penup()

bk(l)

pendown()

fd(l)

def draw_tree(l, level):

global r, g, b

# save the current pen width

w = width()

# narrow the pen width

width(w * 3.0 / 4.0)

# set color:

r = r + 1

g = g + 2

b = b + 3

pencolor(r % 200, g % 200, b % 200)

l = 3.0 / 4.0 * l

lt(s)

fd(l)

if level < lv:

draw_tree(l, level + 1)

bk(l)

rt(2 * s)

fd(l)

if level < lv:

draw_tree(l, level + 1)

bk(l)

lt(s)

# restore the previous pen width

width(w)

speed("fastest")

draw_tree(l, 4)

done()

显示效果:执行上述程序需要花费一定的时间,最后的效果如下

20200426120639485877.png

原文:https://www.cnblogs.com/Fairy-02-11/p/12778477.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值