我正在尝试一个练习,要求我用Python中的turtle绘制字母表的字母。到目前为止,我认为我已经很好地理解了如何使用前/后距离和转角绘制直线、曲线和形状
我试图画字母“B”,这是我的设计:
请注意,所有黑线的距离相等,弧的直径也等于1条黑线。以下是我拥有的不完整函数:
def arc(t, r, angle, n):
arc_length = 2*math.pi*r*(angle/360)
def polyline(t, length, n):
for i in range(n):
t.fd(length/n)
t.lt(angle/n)
polyline(t, arc_length, n)
def draw_b(t):
t.fd(30)
arc(t, 30, 180, 10)
t.fd(30)
t.lt(90)
t.fd(30)
t.bk(60)
它应该给我两条完全平行的线,由底部弧连接,但我得到的是:
忽略不完整的顶部,如果弧的两端明显不重合,从而留下一个短“尾巴”,我如何解决这个问题?我做错什么了吗?
您可以使用
range(n+1)
在结尾处绘制额外的fd()
,但随后必须返回t.lt(-angle/n)
。或者保持range(n)
并在循环后不使用lt()
绘制额外的fd()
编辑:在以前的版本中,我使用了}和
fd()
N+1次和lf()
N次,但如果有lf()
和angle/2
,下一个{lf()
N次,最后是-angle/2
,效果会更好。如果你只画3段的arc
,你会看到它看起来更好对于n=3
第一个版本绘制了4段
第二个版本绘制了3段
顺便说一句:gallery with other images created with turtle
图像代码在其他页面上,但页面尚未翻译成英语
相关问题 更多 >
编程相关推荐