Python turtle 程序没有正确绘制多边形
Python turtle program not drawing polygon properly
当我运行程序使用海龟工具时,它只是制作一条水平线,并没有制作出完整的形状。我不确定为什么会这样。我已经制作了一个可以绘制预定形状(例如正方形)的工作程序。我已经测试了我的计算,我相信我的 for 循环是正确的。我是不是犯了一些愚蠢的语法错误?
# polygon program
# get inputs
side_count = int(input( "How many sides does the polygon have?" ))
side_length = int(input( "How long is each side?" ))
# compute side angle
shape_angle = (side_count - 2) * 180
# import turtle modules
from turtle import *
# measure angles in
degrees()
# drawing speed
speed( 6 )
# square specs
color( 'green' )
width( 3 )
setheading( 0 )
# forloop to draw the polygon
for side in range ( side_count ):
forward ( side_length )
left ( shape_angle )
# all done drawing
done()
首先,先导入你所有的模块,除非你必须使用它,否则没有必要,但这是一个好习惯。 shape_angle
也是整个形状的总和。
要使其正常工作,您需要原始代码:
shape_angle = (side_count - 2) * 180
然后放在括号里除以side_count
求出个体角度,结果:
shape_angle = ((side_count - 2) * 180) / side_count
同时去掉 degrees
import turtle as *
side_count = int(input( "How many sides does the polygon have?" ))
side_length = int(input( "How long is each side?" ))
shape_angle = ((side_count - 2) * 180) / side_count
speed( 6 )
color( 'green' )
width( 3 )
setheading( 0 )
for side in range ( side_count ):
forward ( side_length )
left ( shape_angle )
done()
`
尽管我同意@TudorPopescu 的观点,这条线是您的主要问题:
shape_angle = (side_count - 2) * 180
该解决方案对我不起作用,所以我建议从更简单的开始:
shape_angle = 360 / side_count
您的代码已通过上述修复和样式更改进行了修改:
# polygon program
# import turtle modules
from turtle import *
# get inputs
side_count = int(input("How many sides does the polygon have? "))
side_length = int(input("How long is each side? "))
# compute side angle
shape_angle = 360 / side_count
# measure angles in
degrees() # the default
# drawing speed
speed('normal') # the default
# square specs
color('green')
width(3)
setheading(0) # the default initial heading
# for loop to draw the polygon
for side in range(side_count):
forward(side_length)
left(shape_angle)
# all done drawing
done()
当我运行程序使用海龟工具时,它只是制作一条水平线,并没有制作出完整的形状。我不确定为什么会这样。我已经制作了一个可以绘制预定形状(例如正方形)的工作程序。我已经测试了我的计算,我相信我的 for 循环是正确的。我是不是犯了一些愚蠢的语法错误?
# polygon program
# get inputs
side_count = int(input( "How many sides does the polygon have?" ))
side_length = int(input( "How long is each side?" ))
# compute side angle
shape_angle = (side_count - 2) * 180
# import turtle modules
from turtle import *
# measure angles in
degrees()
# drawing speed
speed( 6 )
# square specs
color( 'green' )
width( 3 )
setheading( 0 )
# forloop to draw the polygon
for side in range ( side_count ):
forward ( side_length )
left ( shape_angle )
# all done drawing
done()
首先,先导入你所有的模块,除非你必须使用它,否则没有必要,但这是一个好习惯。 shape_angle
也是整个形状的总和。
要使其正常工作,您需要原始代码:
shape_angle = (side_count - 2) * 180
然后放在括号里除以side_count
求出个体角度,结果:
shape_angle = ((side_count - 2) * 180) / side_count
同时去掉 degrees
import turtle as *
side_count = int(input( "How many sides does the polygon have?" ))
side_length = int(input( "How long is each side?" ))
shape_angle = ((side_count - 2) * 180) / side_count
speed( 6 )
color( 'green' )
width( 3 )
setheading( 0 )
for side in range ( side_count ):
forward ( side_length )
left ( shape_angle )
done()
`
尽管我同意@TudorPopescu 的观点,这条线是您的主要问题:
shape_angle = (side_count - 2) * 180
该解决方案对我不起作用,所以我建议从更简单的开始:
shape_angle = 360 / side_count
您的代码已通过上述修复和样式更改进行了修改:
# polygon program
# import turtle modules
from turtle import *
# get inputs
side_count = int(input("How many sides does the polygon have? "))
side_length = int(input("How long is each side? "))
# compute side angle
shape_angle = 360 / side_count
# measure angles in
degrees() # the default
# drawing speed
speed('normal') # the default
# square specs
color('green')
width(3)
setheading(0) # the default initial heading
# for loop to draw the polygon
for side in range(side_count):
forward(side_length)
left(shape_angle)
# all done drawing
done()