欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python海龟绘图-画国旗

程序员文章站 2022-04-02 11:05:16
画之前肯定要知道规格图,我找了一个大致的图。参考图片:绘制大星的方法很简单,五角星的补角是144度。绘制小五角星有点麻烦,因为我国国旗上的小五角星并不是平放的(美帝曾经这样把我们的国旗搞错过),而是总有一个角正对着大五角星的中心!我的方法是,定位到小五角星的中心点,然后根据角度后退一定的长度。这个角度可以根据反勾股定理算出来(这有计算工具),长度我是按照大五角星的中心点到角尖的距离除以3得到的。代码:from turtle import *#绘制旗面pencolor('red...

画之前肯定要知道规格图,我找了一个大致的图。

参考图片:

python海龟绘图-画国旗

绘制大星的方法很简单,一划的长度是勾股定理计算得到

python海龟绘图-画国旗python海龟绘图-画国旗

这里20是代码里每一格的像素数

五角星每个角的补角是144度。

绘制小五角星有点麻烦,因为我国国旗上的小五角星并不是平放的(美帝曾经这样把我们的国旗搞错过),而是总有一个角正对着大五角星的中心!我的方法是,定位到小五角星的中心点,然后根据角度后退一定的长度。这个角度可以根据反勾股定理算出来(这有计算工具),长度我是按照大五角星的中心点到角尖的距离(即圆半径)除以3得到的。

代码:

#海龟画图:画国旗
from turtle import *

screensize(2000,2000,'white')#设置画布大小
#绘制旗面
pencolor('red')
#pu()
goto(-300,-200)
pd()
fillcolor('red')
begin_fill()
for i in range(0,2):
    fd(600)
    lt(90)
    fd(400)
    lt(90)
end_fill()

#绘制大五角星
pu()
pencolor('yellow')
goto(-260,120)
pd()
fillcolor('yellow')
begin_fill()
for i in range(0,5):
    fd(113.137)#大星一划的边长
    rt(144)
end_fill()

#绘制四个小五角星
list1 = [(-100,160),(-60,120),(-60,60),(-100,20)]#四个五角星的中心坐标
list2 = [31.98,8.13,-15.59,-38.66]#相对角度0的后退1.111需要左转的角度

for j in range(0,4):
    seth(0)#这是龟头角度为0
    pu()
    goto(list1[j])#定位到五角星中心
    lt(list2[j])#旋转角度,以背向指向大五角星的角尖
    bk(20)#从五角星中心到指向大五角星的角尖(龟倒着爬)退一个小圆半径
    lt(18)#五角星的半角角度
    pd()
    begin_fill()
    for i in range(0, 5):
        fd(113.137 / 3)#小星一划的边长
        rt(144)
    end_fill()
pu()#抬起龟头
ht()#隐藏龟头
done()#保持

效果图:

 

python海龟绘图-画国旗

本文地址:https://blog.csdn.net/wei348144881/article/details/109603760

相关标签: python 海龟绘图