python中n角星画法

import turtle
import math

n=eval(input(“请输入边个数:”))
l=eval(input(“请输入边长:”))

i=0#循环变量
if n%2==1:#奇数n角星的画法
while i < n:
turtle.forward(l)
turtle.left(180 - (180 / n))
i+=1
turtle.done()

else :#偶数n角形画法
n1 = n / 2 # n的一半
a = (180 * (n - 2) / n) # 正n边形内角
b = 180 - a # n角形的内角
c = b / 2 # 长方形短边与l围城三角形的短边的对角
d = 180 - (c * (n / 2 - 1))#l的对角
d1 = (d / 180) * math.pi#转化为三角函数
c1 = (c / 180) * math.pi
e = (math.sin(c1) / math.sin(d1)) * l#长方形的短边

while i < n1:
    turtle.forward(l)
    turtle.left(90)
    turtle.penup()
    turtle.forward(e)
    turtle.pendown()
    turtle.left(90)
    turtle.forward(l)
    turtle.left(180 - 180 / n1)
    i+=1
turtle.done()

奇数n角星可以一笔画出,偶数n角星看为n/2个长方形长边组成。
在这里插入图片描述
找到短边与l关系,找到旋转角度即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值