繁体   English   中英

如何围绕python乌龟的中心点绘制多边形

[英]How do I draw polygons around a center point in python turtle

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

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 循环中,以在您输入值后保持屏幕亮起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM