我在python中通过乌龟创造了一片枫叶。我找到了一种在x轴和y轴上平移形状的方法,但我还没有找到一种方法来调整枫叶的大小,同时保持其原始形状。
import turtle
def MapleLeaf(x=None,y=None):
if x==None:
x=0
if y==None:
y=0
turtle.penup()
turtle.goto(1+x,-3+y)
turtle.pendown()
turtle.goto(5+x,-4+y)
turtle.goto(4+x,-3+y)
turtle.goto(9+x,1+y)
turtle.goto(7+x,2+y)
turtle.goto(8+x,5+y)
turtle.goto(5+x,4+y)
turtle.goto(5+x,5+y)
turtle.goto(3+x,4+y)
turtle.goto(4+x,9+y)
turtle.goto(2+x,7+y)
turtle.goto(0+x,10+y)
turtle.goto(-2+x,7+y)
turtle.goto(-4+x,8+y)
turtle.goto(-3+x,3+y)
turtle.goto(-5+x,6+y)
turtle.goto(-5+x,4+y)
turtle.goto(-8+x,5+y)
turtle.goto(-7+x,2+y)
turtle.goto(-9+x,1+y)
turtle.goto(-4+x,-3+y)
turtle.goto(-5+x,-4+y)
turtle.goto(0+x,-3+y)
turtle.goto(2+x,-7+y)
turtle.goto(2+x,-6+y)
turtle.goto(1+x,-3+y)
turtle.hideturtle()
turtle.pencolor("black")
turtle.fillcolor("red")
turtle.begin_fill()
MapleLeaf(50,50)
turtle.end_fill()
turtle.done()
答案 0 :(得分:1)
要更改您正在绘制的数字的比例,请将x
和y
位置的所有偏移乘以比例因子:
def MapleLeaf(x=0, y=0, scale=1):
turtle.penup()
turtle.goto(1*scale+x,-3*scale+y)
turtle.pendown()
turtle.goto(5*scale+x,-4*scale+y)
turtle.goto(4*scale+x,-3*scale+y)
turtle.goto(9*scale+x,1*scale+y)
# ...
请注意,我在开始时删除了if
语句,因为您可以使用0
作为默认值。它只有可变的默认值(如列表),你需要总是使用像None
这样的标记来表示默认值。
由于比例和x
和y
偏移重复得太多,您可能希望将它们进一步分解为函数:
def MapleLeaf(x=0, y=0, scale=1):
def my_goto(x_offset, y_offset):
turtle.goto(x + scale*x_offset, y + scale*y_offset)
turtle.penup()
my_goto(1, -3)
turtle.pendown()
my_goto(5, -4)
my_goto(4, -3)
my_goto(9, 1)
# ...
另一种选择可能是将偏移量放入列表中,并在循环中迭代它们。