• python之“七巧板”


    1       七巧板的关系

    七巧板由2个大三角、1个中三角、2个小三角、1个平行四边形组成

    2       代码

    from turtle import *
    len=200
    坐标=[]
    def writestr(a):
        write(a, False, "left", ("Arial", 10, "normal"))
    def 平行四边形(x,y):
        坐标.clear()
        penup()
        goto(x,y)
        writestr(1)
        坐标.append([xcor(),ycor()])
        pendown()
        begin_fill()
        forward(len/2)
        writestr(2)
        坐标.append([xcor(),ycor()])
        right(45)
        forward(len/2*1.414/2)
        writestr(3)
        坐标.append([xcor(),ycor()])
        right(135)
        forward(len/2)
        writestr(4)
        坐标.append([xcor(),ycor()])
        right(45)
        forward(len/2*1.414/2)
        right(135)
        end_fill()
    
    def 正方形(x,y):
        begin_fill()
        坐标.clear()
        penup()
        goto(x, y)
        writestr(1)
        坐标.append([xcor(), ycor()])
        pendown()
        forward(len/2/1.414)
        writestr(2)
        坐标.append([xcor(), ycor()])
        left(90)
        forward(len/2/1.414)
        writestr(3)
        坐标.append([xcor(), ycor()])
        left(90)
        forward(len/2/1.414)
        writestr(4)
        坐标.append([xcor(), ycor()])
        left(90)
        forward(len/2/1.414)
        end_fill()
    
    def 大三角形(x,y):
        begin_fill()
        坐标.clear()
        penup()
        goto(x, y)
        writestr(1)
        坐标.append([xcor(), ycor()])
        pendown()
        forward(len/1.414)
        writestr(2)
        坐标.append([xcor(), ycor()])
        left(135)
        forward(len)
        writestr(3)
        坐标.append([xcor(), ycor()])
        left(135)
        forward(len/1.414)
        left(90)
        end_fill()
    
    def 中三角形(x,y):
        begin_fill()
        坐标.clear()
        penup()
        goto(x, y)
        writestr(1)
        坐标.append([xcor(), ycor()])
        pendown()
        forward(len/2)
        writestr(2)
        坐标.append([xcor(), ycor()])
        left(135)
        forward(len/2*1.414)
        writestr(3)
        坐标.append([xcor(), ycor()])
        left(135)
        forward(len/2)
        left(90)
        end_fill()
    def 小三角形(x,y):
        begin_fill()
        坐标.clear()
        penup()
        goto(x, y)
        writestr(1)
        坐标.append([xcor(), ycor()])
        pendown()
        forward(len/2/1.414)
        writestr(2)
        坐标.append([xcor(), ycor()])
        left(135)
        forward(len/2)
        writestr(3)
        坐标.append([xcor(), ycor()])
        left(135)
        forward(len/2/1.414)
        left(90)
        end_fill()
    
    color("blue")
    平行四边形(-100,-100)
    color("red")
    setheading(-45)
    正方形(坐标[1][0],坐标[1][1])
    color("orange")
    setheading(-45)
    大三角形(坐标[3][0],坐标[3][1])
    
    紫色x=坐标[1][0]-abs(坐标[1][0]-坐标[0][0])*1/4
    紫色y=坐标[1][1]+abs(坐标[0][1]-坐标[1][1])*1/4-len/2
    
    color("yellow")
    setheading(-90)
    大三角形(坐标[2][0],坐标[2][1])
    绿色x=坐标[2][0]-abs(坐标[2][0]-坐标[0][0])*1/4
    绿色y=坐标[0][1]
    棕色x=(坐标[1][0]+坐标[2][0])/2
    棕色y=(坐标[1][1]+坐标[2][1])/2
    
    color("purple")
    setheading(0)
    中三角形(紫色x,紫色y)
    color("green")
    setheading(0)
    小三角形(绿色x,绿色y)
    color("brown")
    setheading(-45)
    小三角形(棕色x,棕色y)
    mainloop()

    3      效果图

  • 相关阅读:
    Python()- 面向对象的组合用法
    HASHMAP 深入解析
    java深入解析
    centos 防火墙关闭/开启
    idea讲web项目部署到tomcat,热部署
    idea真不习惯啊
    JetbrainsCrack
    js 模块化
    JavaWeb中session创建与销毁的问题
    前端导出文件功能document.execCommand命令
  • 原文地址:https://www.cnblogs.com/yongfeng/p/13493443.html
Copyright © 2020-2023  润新知