【问题标题】:Can anyone help me make a Polygon Generator in Python?谁能帮我用 Python 制作多边形生成器?
【发布时间】:2014-08-23 15:35:11
【问题描述】:

它应该要求一个介于 4 和 8 之间的数字,然后海龟会画出这些边。

内角方程:

其中 N 是边数 (N -2)180= x,然后 x 除以 N = draw 侧面

>>> import turtle
>>> t=turtle.Pen()
>>> usernum = int(input('Give me a number between 4 and 8: '))
Give me a number between 4 and 8: 5
>>> if usernum < 4 or usernum > 8:
        print ("invalid number!")
else:
        draw
        myangle = (((numSides-2) * 180)/ numSides)
        turtle.right(180 - myangle)

【问题讨论】:

  • SO 不是代码编写服务...你能证明你至少尝试过 something 吗?
  • 尝试自己编写,如果遇到困难,这里的人会很乐意提供帮助。
  • 维基百科:equiangular polygon 是一个顶点角相等的多边形。如果边的长度也相等,则它是正多边形。对于等角 N 边形,每个角度为 180° - (360/N)°。这意味着在画完每一边之后,乌龟在画另一边之前必须转动那么多。
  • 如果你想留下来,你可能应该阅读help。问很多被否决的问题最终会让你被自动禁止提问。

标签: python


【解决方案1】:

既然你展示了你实际尝试过的东西,我会向你扔骨头,但你几乎肯定可以通过几个快速的谷歌搜索找到如何做到这一点。

无论出于何种原因,我在从 IDLE 运行海龟图形脚本时遇到了一些问题,我不知道您是否有更好的运气。

import turtle

t = turtle.Pen()
num_sides= int(input("Give me a number between 4 and 8: "))
side_length = 30

while True:
    if (num_sides < 4) or (num_sides > 8):
        num_sides = int(input("Invalid Number! Please enter a new one from 4-8: "))
    else:
        myangle = 360 / side_length
        break

for i in range(num_sides):
    t.forward(side_length)
    t.right(myangle)

如果您像我一样在 IDLE 中运行时遇到问题,请尝试从命令行中的 python 解释器运行它。使用稍微修改过的版本,我制作了num_sides = range(3, 15) 所在的所有多边形。需要注意的是,我们每次都不能完全回到开始的原因是由于使用了整数而不是浮点数。将其更改为使用浮点应该可以解决该问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 2015-07-11
    相关资源
    最近更新 更多