turtle实例4 螺旋、太极

turtle绘制螺旋图和太极图

都挺简单的, 直接上图和代码

运行结果

在这里插入图片描述

图 1 螺旋正方形



在这里插入图片描述

图 2 螺旋弧线



在这里插入图片描述

图 3 螺旋多边形



在这里插入图片描述

图 4 太极图

完整代码

import time
import turtle
def rgbToHex(r, g, b):
    return '{:0>2}{:0>2}{:0>2}'.format(hex(r % 256)[2:], hex(g % 256)[2:], hex(b % 256)[2:])
def screw():
    colors = ['yellow', 'red', 'orange', 'cyan', 'green', 'blue', 'white', 'purple', 'pink'] # 备用
    t = turtle.Pen()
    t.speed(0), turtle.Turtle().screen.delay(0)
    t.ht()
    # 螺旋正方形
    t.color('red')
    for i in range(300):
        t.fd(i+1), t.right(90)
    time.sleep(1)
    t.home(), t.clear() # 清空之前的操作,下同
    # 螺旋圆弧
    for i in range(600):
        t.width(i/6)
        t.color('#' + rgbToHex(i*3, i*2, i*1))
        t.circle(i/2, 1)
    time.sleep(2)
    t.home(), t.clear(), t.width(3)
    # 螺旋多边形
    turtle.bgcolor('black')
    numedges = 9 # number of edges of polygon
    for i in range(numedges*20):
        t.color(colors[i%numedges])
        # t.color('#' + rgbToHex(i*20,i*30,i*10))
        t.fd(i), t.right(360/numedges - 1)
    time.sleep(1)
    # 太极图
    turtle.bgcolor('white')
    t.width(1)
    t.clear(), t.pu(), t.goto(0, -200), t.pd(), t.seth(0), t.color('white')
    t.circle(200)
    t.begin_fill(), t.fillcolor('black')
    t.circle(200, 180), t.left(90), t.fd(400)
    t.end_fill()
    t.pu(), t.goto(0, -200), t.color('black'), t.seth(0), t.pd()
    t.circle(200)
    t.pu(), t.goto(0,-100), t.pd()
    t.dot(200, 'black'), t.dot(50, 'white')
    t.pu(), t.goto(0,100), t.pd()
    t.dot(200, 'white'), t.dot(50, 'black')
    
    turtle.done()
def main():
    # chessboard(30)
    screw()
main()

只要是规则的几何图形, 找出规律, 就很容易画
螺旋的关键点就在于边(或半径)逐渐变化, 螺旋多边形各个角的角度和不等于360°

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值