在Python中使用Turtle库画“蜂窝状六边形”

(2022-05-16)

编程题:使用turtle库绘制一个蜂窝状六边形。

分析:

        如图,只要画出外围的6个六边形即可。

        6个六边形的外接圆圆心,关于原点,间隔60°,均匀分布。

         外接圆半径为r,圆心距离原点距离L=1.732*r。

        6个六边形的“起始点”,由6个外接圆的圆心出发,向“南方”爬行距离r到达。

        因此,(1)由东边逆时针计数,第i个六边形(i=0,1,2,...,5),其形心是原点向左旋转了60*i度,前进了距离L。(2)向右回复了60*i度,指向正东。(3)然后,画笔方向再次向右又旋转了90度,指向正南。前进了距离r后,(4)把脑袋向东(向右)调转了90度,(5)画六边形。

        以上步骤循环了6次后,得到所要的蜂窝状六边形。

代码如下:

#画蜂窝状六边形

from turtle import *

r=60                    #外接圆半径

L=(3**0.5)*r            #形心间距为根号下3倍的半径

pensize(2)              #画笔尺寸

for i in range(6):      #画六个六边形
    penup()             #
    home()              #回归原点,画笔方向向东
    left(60*i)          #依次向左旋转60°
    forward(L)          #爬行L
    right(90+i*60)      #指向六边形起始点
    forward(r)          #爬行r,到达六边形起始点
    pendown()           #
    left(90)            #调整画笔方向向东
    circle(r,steps=6)   #画六边形
    
hideturtle()            #隐藏画笔
    
    
    

  • 7
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值