首先,我在编码和程序方面是一个绝对的初学者,所以请耐心等待。 我正在使用桑尼。 我已经编码了一个简单的头骨形状,并想添加一个鼻子,它只是一个倒置的心。我也已经有了心脏的代码,它工作得很好,但是,我的问题是我想改变心脏的大小。它不适合头骨,它太大了。
我尝试过减小这些值,但显然它只是使形状变形。 然后我用谷歌搜索并尝试找到一些有用的东西,但我所能找到的只是“shapesize()”,并且这只适用于乌龟本身,或者我用错了它。 其他的东西对我来说太复杂了,或者对 Python 来说太复杂了。 我知道解决方案可能很简单,但我 不明白。 请帮忙,我有点卡住了。
from turtle import *
speed(100)
hideturtle()
width(3.5)
lt(90)
circle(200,
extent = 180) #Schädeldecke
lt(6)
circle(170,
extent = 45) #WangenknochenI
rt(65)
fd(80)
lt(104)
fd(345)
lt(104)
fd(80) #Kieferpartie
rt(50)
circle(175,
extent = 40)#WangenknochenII
penup()
goto(-210,50)
pendown()
circle(70,
extent = 360)#AugenhöhleI
penup()
goto(-50,50)
pendown()
circle(70,
extent = 360)#AugenhöhleII
penup()
goto(-197,-50)
pendown()
setheading(180)
def curve():
for a in range(200):
rt(1)
fd(1)
lt(140)
fd(111.65)
curve()
lt(120)
curve()
fd(111.70)
我尝试过减小这些值,但显然它只是使 形状。
对于像这样的简单图像,您可以通过数学来缩放它。在这个例子中,我将把它减少 1/2。首先,这两行将其值更改 1/2:
fd(111.65)
...
fd(111.70)
改为
forward(55.35)
。然后在
curve()
中,我们将半径减少 1/2,从 200 减少到 100,但我们还必须将转弯量加倍,以便在一半的步骤中达到相同的结束角度:def curve():
for _ in range(100):
right(2)
forward(1)
这是完整的解决方案:
from turtle import *
def curve():
for _ in range(100):
right(2)
forward(1)
speed('fastest')
hideturtle()
width(4)
left(90)
circle(200, extent=180) # Schädeldecke
left(6)
circle(170, extent=45) # Wangenknochen I
right(65)
forward(80)
left(104)
forward(345)
left(104)
forward(80) # Kieferpartie
right(50)
circle(175, extent=40) # Wangenknochen II
penup()
goto(-210, 50)
pendown()
circle(70, extent=360) # Augenhöhle I
penup()
goto(-50, 50)
pendown()
circle(70, extent=360) # Augenhöhle II
penup()
goto(-197, -50)
pendown()
setheading(180)
left(140)
forward(55.35)
curve()
left(120)
curve()
forward(55.35)
exitonclick()