使用Python turtle库绘制多边形如何让图形适配屏幕尺寸
适配屏幕的正多边形绘制解决方案
核心逻辑:正多边形的展示范围由它的外接圆直径决定,只要外接圆尺寸小于屏幕可用范围,多边形就不会超出窗口。我们可以通过正多边形边长与外接圆半径的几何关系,动态计算适配当前屏幕的边长。
修改后的完整代码
from turtle import * import math def main(): # 读取当前turtle窗口的尺寸 screen = Screen() win_width = screen.window_width() win_height = screen.window_height() # 取宽高中更小的值的90%作为外接圆直径,预留边距避免贴边 circum_diameter = min(win_width, win_height) * 0.9 circum_radius = circum_diameter / 2 sides = int(input('Enter the number of sides of a polygon: ')) angle = 360 / sides # 正多边形边长计算公式:边长 = 2 * 外接圆半径 * sin(π/边数) size = 2 * circum_radius * math.sin(math.pi / sides) for _ in range(sides): forward(size) left(angle) hideturtle() done() main()
核心改动说明
- 导入math库用于三角函数计算,实现边长的动态换算
- 新增屏幕尺寸读取逻辑,自动适配当前窗口大小,无需手动写死尺寸参数
- 移除了原代码中冗余的
i += 1逻辑(for循环本身会自动完成迭代,手动赋值不生效也无意义) - 预留10%的安全边距,避免图形和窗口边缘完全贴合,展示效果更友好
修改后无论输入3边的三角形还是100边的近似圆形,都可以完整展示在窗口内,无需手动调整边长系数。
内容的提问来源于stack exchange,提问作者Y.D
相关产品推荐
相关产品推荐

