Yhzhtk's Blog

(热爱技术,高效Code)     归档  标签  源码  关于 


Python 使用 turtle 绘图

2013-06-30    python 


今天继续看Python,发现一个绘图的包turtle,非常简单和有趣。turtle(中文海龟的意思,可能因为默认的demo有一只乌龟),据说海龟绘图以“最适合教给孩子的编程语言”而闻名。

从Python2.5开始,turtle被包含在Python库中,官网文档在:turtle — Turtle graphics for Tk

下面给出一个实例,这是一个画五角星的简单demo:

绘图Demo
# -*- coding: utf-8 -*-
import turtle
import time

turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)
turtle.forward(100)
turtle.right(144)

time.sleep(3)

在使用中发现一个问题:

错误框标题是Microsoft Visual C++ Runtime Library
内容是:Runtime Error!
Program c:\Python27\python.exe
R6025
-pure virtual function call

网上找了一下,比较靠谱的解释:Runtime Error! R6025 pure virtual function call

下面再给出一个复杂的demo,画一个圆再画出多个正方形:

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

# the turtle module provides turtle graphics primitives, it uses a Tkinter canvas
# turtle is part of the Tkinter library (lib-tk)
# tested with Python24  vegaseat  30jun2005

from turtle import *
import time

# pen/turtle starts at the center (x=0, y=0) of the turtle display area

color("green")
# pen up, don't draw
up()
# centers the circle
goto(0,-50)
# pen down, draw
down()
# radius=50  center is 50 radius units above the turtle
circle(50)
up()
# center the turtle again
goto(0,0)
down()

# draw blue 100x100 squares
color("blue")
for deg in range(0, 61, 6):
    right(90 + deg)
    forward(100)
    right(90)
    forward(100)
    right(90)
    forward(100)
    right(90)
    forward(100)
    
up()
goto(-150,-120)
color("red")
write("Done!")

time.sleep(5)  # wait 5 seconds

也可以在IDLE命令行中使用turtle,用命令的方式演示绘图:

>>> from turtle import *
>>> reset()
>>> shape("square")
>>> color("blue", "red")
>>> resizemode("user")   #  at first no visual effect, but ...
>>> turtlesize(2,3,5)
>>> fd(100)
>>> left(45)
>>> pensize(8)
>>> fd(100)
>>> left(90)
>>> pencolor("green")
>>> fd(100)
>>> turtlesize(1,5)
>>> left(1080)
>>> stamp()
8
>>> left(45)
>>> ht()
>>> fd(100)
>>> stamp()
9
>>> left(45)
>>> fd(100)
>>> stamp()
10
>>>




Load Disqus comments, wait a moment..

©2013 首页   关于     View me on GitHub Powered by Jekyll & Bootstrap 知识共享许可协议