[英]Drawing polygon with turtle graphics
我正在尝试使用turtle
库在 python 中绘制一个多边形。 我想设置大小以适合屏幕大小,但我不知道如何。 现在我尝试了两种方法,它确实有效,但我希望无论多边形适合屏幕的大小如何。 例如,如果我设置 size = 50 和 n = 100,它就不会显示在屏幕上。
from turtle import *
def main():
sides = int(input('Enter the number of sides of a polygon: '))
angle = 360/sides
size = 500/sides
# =============================================================================
# if sides <= 20:
# size = 50
# else:
# size= 10
# =============================================================================
for i in range(sides):
forward(size)
left(angle)
i += 1
hideturtle()
done()
main()
如果我理解正确,您会问如何选择size
(边长)以使形状填充但不超过屏幕。 首先,我们需要检查屏幕的高度或宽度(以较小者为准):
min_dimension = min(screensize()) # by default, 300 pixels
外接半径是通过多边形所有点的圆的半径。 为了使多边形适合屏幕, min_dimension
半径应等于min_dimension
。 反转圆周半径的公式,我们可以编写一个函数来确定合适的边长:
def side_length(circumradius, number_of_sides):
return circumradius * 2 * math.sin(math.pi / number_of_sides)
为了填满屏幕,我们应该开始在屏幕底部附近而不是在中心绘制。
def main():
sides = int(input('Enter the number of sides of a polygon: '))
angle = 360/sides
min_dimension = min(screensize())
size = side_length(min_dimension, sides)
right(90 + angle / 2)
# Start from near the bottom of the screen
penup()
forward(min_dimension)
left(90 + angle / 2)
pendown()
# Draw polygon
for _ in range(sides):
forward(size)
left(angle)
hideturtle()
done()
(从技术上讲,这使得形状比屏幕略小,特别是对于边数较少的情况。应该使用国题而不是圆周率。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.