如何在蟒蛇龟的中心点周围绘制多边形



我想定义这个函数,这样用户就可以输入任意数量的边、长度和坐标。我面临的问题是,我希望坐标是多边形的中心,而不是角,但我不确定如何。下面是我当前的代码

import turtle
WIDTH,HEIGHT= 1200,700
screen = turtle.Screen()
screen.setup(WIDTH,HEIGHT)
def draw_polygon(x,y,sides,length):
pen=turtle.Turtle()
pen.hideturtle()
pen.speed(-1)
pen.penup()
pen.setpos(x,y)
pen.pendown()
for i in range (0,sides):
pen.fd(length)
pen.right(360/sides)
while True:
s=int(input())
l=int(input())
draw_polygon(0,0,s,l)

乌龟从它的设定位置开始绘制,因为你是顺时针绘制的,这意味着给定的位置将始终是多边形的左上角。为了使你进入函数的位置成为中心,你必须偏移乌龟的起始位置。

五边形的偏移示例

x轴上的偏移量将始终为一侧长度的一半,当多边形接近圆时,偏移量将接近零。

y轴上的偏移量将是多边形的半径。

在您的代码中,替换您的设置位置以相应地偏移乌龟的起始位置。

from math import pi
startPosX = x - length/2
startPosY = y + length * sides / (2*pi)
pen.setpos(startPosX,startPosY)

在旁注中,您可以添加:

turtle.Screen().exitonclick()

在drawPolygon((的末尾,而不是while循环,以在输入值后保持屏幕显示。

最新更新