如何更改 Python 中绘制形状的大小?

问题描述 投票:0回答:1

首先,我在编码和程序方面是一个绝对的初学者,所以请耐心等待。 我正在使用桑尼。 我已经编码了一个简单的头骨形状,并想添加一个鼻子,它只是一个倒置的心。我也已经有了心脏的代码,它工作得很好,但是,我的问题是我想改变心脏的大小。它不适合头骨,它太大了。

我尝试过减小这些值,但显然它只是使形状变形。 然后我用谷歌搜索并尝试找到一些有用的东西,但我所能找到的只是“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)
python size shapes python-turtle thonny
1个回答
0
投票

我尝试过减小这些值,但显然它只是使 形状。

对于像这样的简单图像,您可以通过数学来缩放它。在这个例子中,我将把它减少 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()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.