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..

分类标签

jekyll3   编码1   windows1   bootstrap1   git3   删除1   命令3   python11   ide1   学习笔记3   实例分析1   mp3-tag1   github1   gravatar1   goagent1   翻墙1   C#4   找茬工具1   微博自动评论1   电脑监控1   备份1   云搜索1   wxPython1   py2exe1   yaml1   Eric1   PyQt1   Django1   设计模式5   翻译4   单例1   工厂1   抽象工厂1   生成器1   原型1   适配器1   桥接1   组合1   装饰1   外观1   享元1   代理1   MVC1   观察者1   状态1   策略1   模板1   访问者1   职责链1   解释器1   迭代器1   中介者1   备忘录1   js1   resize bar1   geohash1   口琴1   rpm安装gitlab1   CentOs1   WordPress1   数据库1   读脏数据1   丢失的修改1   不可重复读1   幻影读1   1   隔离1   思维导图1   事务1   笔记迁移1   note1   issue1  

最新博文

最新评论

Feed订阅


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