• 使用Python的 turtle库绘制中国结


    需求:用python绘制一个与中国传统节日有关的图像,如春节→中国结

      1 import turtle as t
      2 def goto(x,y):
      3     t.penup()
      4     t.goto(x,y)
      5     t.pendown()
      6     
      7 def init():
      8     t.setup(800,800)
      9     t.pensize(10)
     10     t.pencolor("red")
     11     t.speed(14)
     12     
     13 def jiexin():
     14     m,n=0,200
     15     for i in range(11):
     16         goto(m,n)
     17         t.seth(-45)
     18         t.fd(200)
     19         m-=20/pow(2,0.5)
     20         n-=20/pow(2,0.5)
     21         
     22     m,n=0,200
     23     for j in range(11):
     24         goto(m,n)
     25         t.seth(-135)
     26         t.fd(200)
     27         m+=20/pow(2,0.5)
     28         n-=20/pow(2,0.5)
     29         
     30 def jiexiaoban():
     31     m=-20/pow(2,0.5)
     32     n=200-20/pow(2,0.5)
     33     for k in range(4):
     34         goto(m,n)
     35         t.seth(135)
     36         t.fd(20)
     37         t.circle(10,180)
     38         t.fd(20)
     39         m-=40/pow(2,0.5)
     40         n-=40/pow(2,0.5)
     41         
     42     m=20/pow(2,0.5)
     43     n=200-20/pow(2,0.5)
     44     for k in range(4):
     45         goto(m,n)
     46         t.seth(45)
     47         t.fd(20)
     48         t.circle(-10,180)
     49         t.fd(20)
     50         m+=40/pow(2,0.5)
     51         n-=40/pow(2,0.5)
     52  
     53     m=20/pow(2,0.5)
     54     n=200-200*pow(2,0.5)+20/pow(2,0.5)
     55     for k in range(4):
     56         goto(m,n)
     57         t.seth(-45)
     58         t.fd(20)
     59         t.circle(10,180)
     60         t.fd(20)
     61         m+=40/pow(2,0.5)
     62         n+=40/pow(2,0.5)
     63         
     64     m=-20/pow(2,0.5)
     65     n=200-200*pow(2,0.5)+20/pow(2,0.5)
     66     for k in range(4):
     67         goto(m,n)
     68         t.seth(-135)
     69         t.fd(20)
     70         t.circle(-10,180)
     71         t.fd(20)
     72         m-=40/pow(2,0.5)
     73         n+=40/pow(2,0.5)
     74         
     75 def waiyuan():
     76     goto(90*pow(2,0.5),200-110*pow(2,0.5))
     77     t.seth(-45)
     78     t.circle(20,270)
     79     
     80     goto(-90*pow(2,0.5),200-110*pow(2,0.5))
     81     t.seth(-135)
     82     t.circle(-20,270)
     83     
     84     goto(80*pow(2,0.5),200-120*pow(2,0.5))
     85     t.seth(-45)
     86     t.circle(40,270)
     87     
     88     goto(-80*pow(2,0.5),200-120*pow(2,0.5))
     89     t.seth(-135)
     90     t.circle(-40,270)
     91  
     92 def shengzi():
     93     goto(0,200)
     94     t.pensize(20)
     95     t.seth(90)
     96     t.fd(60)
     97     goto(0,320)
     98     t.pensize(12)
     99     t.seth(180)
    100     t.circle(30,360)
    101     
    102     goto(0,200-200*pow(2,0.5))
    103     t.pensize(40)
    104     t.seth(-90)
    105     t.fd(20)
    106     t.pensize(2)
    107     s=-20
    108     for i in range(11):
    109         goto(s,200-200*pow(2,0.5))
    110         t.seth(-90)
    111         t.fd(200)
    112         s+=4
    113         
    114 def hanzi():
    115     goto(-150,325)
    116     t.write("幸福中国结",font=("Arial",40,"normal"))
    117     
    118 def main():
    119     init()
    120     jiexin()
    121     jiexiaoban()
    122     waiyuan()
    123     shengzi()
    124     hanzi()
    125     t.hideturtle()
    126     t.done()
    127 main()
    128         
  • 相关阅读:
    离散数学知识点总结(8)-图论
    离散数学知识点总结(7)-格
    离散数学知识点总结(6)-计数技术
    离散数学知识点总结(5)函数
    离散数学知识点总结(4)-集合
    离散数学知识点总结(3)-二元关系
    离散数学知识点总结(2)-谓词逻辑
    离散数学知识点总结(1)-命题逻辑
    镜像仓库和Harbor
    视频管理上云平台EasyNVS 2.1版本分享RTSP流和RTMP流端口发生变化是什么原因?
  • 原文地址:https://www.cnblogs.com/zzj420133722/p/12900738.html
Copyright © 2020-2023  润新知