用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


相关文章
|
6月前
|
Python
绘制你的图像-turtle
`turtle`是Python中的一个图形绘制库,源自1967年的Logo编程语言。它使用tkinter创建图形界面,让用户仿佛操控一支在画布上画画的笔。基本操作包括设置画笔颜色、填充、移动及旋转。示例代码展示了如何创建图形,如红黄相间的形状和太极图。turtle还可用于制作动画,如小球下落效果。此外,文中还给出了绘制玫瑰曲线、螺旋和扇子的代码示例。turtle是引导初学者学习编程的好工具。5月更文挑战第18天
54 0
|
编解码 数据可视化 数据挖掘
【Matplotlib】绘制图形
【Matplotlib】绘制图形
188 0
使用python中turtle库绘制图形
使用python中turtle库绘制图形
|
前端开发 Python
Python tkinter库之Canvas直线画圆和莫尔条纹
Python tkinter库之Canvas直线画圆和莫尔条纹
172 0
|
前端开发 Python
Python tkinter库之Canvas正方形旋转
Python tkinter库之Canvas正方形旋转
300 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模块,是在第一节课,觉得有趣,自动绘图,于是乎,百度了一下,做个总结
223 0
「Python」turtle绘制图形🎈
|
Python
turtle库的使用(专题)
turtle库的使用(专题)
392 0
turtle库的使用(专题)
|
人工智能 前端开发 Python
Python 海龟绘图:turtle库的使用
turtle库是turtle绘图体系Python的实现,turtle库是python的标准库之一,属于入门级的图形绘制函数库。turtle库绘制原理:有一只海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等。...
594 0
Python 海龟绘图:turtle库的使用