用turtle库绘制图形(bytedesign)

简介: 用turtle库绘制图形(bytedesign)

d86586b389464d2aa9ba8ef688272334.jpg


使用Turtle库绘制示例如下:

from turtle import Turtle, mainloop
from time import perf_counter as clock
# wrapper for any additional drawing routines
# that need to know about each other
class Designer(Turtle):
    def design(self, homePos, scale):
        self.up()
        for i in range(5):
            self.forward(64.65 * scale)
            self.down()
            self.wheel(self.position(), scale)
            self.up()
            self.backward(64.65 * scale)
            self.right(72)
        self.up()
        self.goto(homePos)
        self.right(36)
        self.forward(24.5 * scale)
        self.right(198)
        self.down()
        self.centerpiece(46 * scale, 143.4, scale)
        self.getscreen().tracer(True)
    def wheel(self, initpos, scale):
        self.right(54)
        for i in range(4):
            self.pentpiece(initpos, scale)
        self.down()
        self.left(36)
        for i in range(5):
            self.tripiece(initpos, scale)
        self.left(36)
        for i in range(5):
            self.down()
            self.right(72)
            self.forward(28 * scale)
            self.up()
            self.backward(28 * scale)
        self.left(54)
        self.getscreen().update()
    def tripiece(self, initpos, scale):
        oldh = self.heading()
        self.down()
        self.backward(2.5 * scale)
        self.tripolyr(31.5 * scale, scale)
        self.up()
        self.goto(initpos)
        self.setheading(oldh)
        self.down()
        self.backward(2.5 * scale)
        self.tripolyl(31.5 * scale, scale)
        self.up()
        self.goto(initpos)
        self.setheading(oldh)
        self.left(72)
        self.getscreen().update()
    def pentpiece(self, initpos, scale):
        oldh = self.heading()
        self.up()
        self.forward(29 * scale)
        self.down()
        for i in range(5):
            self.forward(18 * scale)
            self.right(72)
        self.pentr(18 * scale, 75, scale)
        self.up()
        self.goto(initpos)
        self.setheading(oldh)
        self.forward(29 * scale)
        self.down()
        for i in range(5):
            self.forward(18 * scale)
            self.right(72)
        self.pentl(18 * scale, 75, scale)
        self.up()
        self.goto(initpos)
        self.setheading(oldh)
        self.left(72)
        self.getscreen().update()
    def pentl(self, side, ang, scale):
        if side < (2 * scale): return
        self.forward(side)
        self.left(ang)
        self.pentl(side - (.38 * scale), ang, scale)
    def pentr(self, side, ang, scale):
        if side < (2 * scale): return
        self.forward(side)
        self.right(ang)
        self.pentr(side - (.38 * scale), ang, scale)
    def tripolyr(self, side, scale):
        if side < (4 * scale): return
        self.forward(side)
        self.right(111)
        self.forward(side / 1.78)
        self.right(111)
        self.forward(side / 1.3)
        self.right(146)
        self.tripolyr(side * .75, scale)
    def tripolyl(self, side, scale):
        if side < (4 * scale): return
        self.forward(side)
        self.left(111)
        self.forward(side / 1.78)
        self.left(111)
        self.forward(side / 1.3)
        self.left(146)
        self.tripolyl(side * .75, scale)
    def centerpiece(self, s, a, scale):
        self.forward(s); self.left(a)
        if s < (7.5 * scale):
            return
        self.centerpiece(s - (1.2 * scale), a, scale)
def main():
    t = Designer()
    t.speed(0)
    t.hideturtle()
    t.getscreen().delay(0)
    t.getscreen().tracer(0)
    at = clock()
    t.design(t.position(), 2)
    et = clock()
    return "runtime: %.2f sec." % (et-at)
if __name__ == '__main__':
    msg = main()
    print(msg)
    mainloop()


运行结果如下:


54f3750abd9c495587c6e5caac15516b.png


目录
相关文章
【python】使用matplotlib绘图使刻度线向内
成功使用代码实现matplotlib绘制的图刻度线朝内
【python】使用matplotlib绘图使刻度线向内
|
10月前
|
Python
10分钟轻松学会 Python turtle 绘图(下)
10分钟轻松学会 Python turtle 绘图
|
10月前
|
前端开发 图形学 Python
10分钟轻松学会 Python turtle 绘图(上)
10分钟轻松学会 Python turtle 绘图
122 0
|
11月前
几个圣诞树的Turtle绘图
几个圣诞树的Turtle绘图
|
编解码 数据可视化 数据挖掘
【Matplotlib】绘制图形
【Matplotlib】绘制图形
151 0
使用python中turtle库绘制图形
使用python中turtle库绘制图形
|
前端开发 Python
Python tkinter库之Canvas直线画圆和莫尔条纹
Python tkinter库之Canvas直线画圆和莫尔条纹
125 0
|
前端开发 Python
Python tkinter库之Canvas正方形旋转
Python tkinter库之Canvas正方形旋转
190 0
python-turtle(海龟绘图)圣诞树
前言: 1.在开始前需要引入turtle库,若没有下载这个库可以复制下面这条语句在PyCharm终端下载 pip install turtle 2.turtle库,它这个画笔是在这个窗口横轴x轴,纵轴y轴从原点(0,0)处开始,以函数指令使其移动绘图。 正文: 一:开始前引入所需的库 # turtle as t 是将turtle替换为t import turtle as t # 随机库 import random # 引入turtle库中的所有用法 from turtle import * 二:设置窗口属性和RGB颜色属性以及绘图数度 # 设置窗口大小和背景颜色 t.screensize(80
python-turtle(海龟绘图)圣诞树
|
Python
「Python」turtle绘制图形🎈
初识turtle模块,是在第一节课,觉得有趣,自动绘图,于是乎,百度了一下,做个总结
190 0
「Python」turtle绘制图形🎈

热门文章

最新文章