我正在尝试制作一朵花,在整个圆周上从其近似中心画出黄线。
我遇到的问题是画出一条线,去中心,再画出相同的长度,但比前一个大10度。
我无法理解如何做到这一点,线条要么反复弹跳,要么绕着侧面转动(例如当我制作尖头形状时)。
那么我如何让这条黄线回调,并逐渐羽化/获得那个尖头形状以不断地将自己画出360度?
这是我猜的第一个“真实”节目。我没有先前的编程经验,并且只开始这样做了几天。我在函数“draw_feather()”中使用的代码来自另一个站点,因为我不知道如何在一个圆圈中旋转三角形。
import turtle
def draw_fractal(ink):
for i in range(1,37):
ink.circle(50)
ink.right(10)
def draw_feather(ink):
while True:
ink.forward(200)
ink.left(170)
if abs(ink.pos()) < 1:
break
def draw_stem(ink):
ink.goto(1,-400)
ink.home()
ink.goto(5,-400)
ink.home()
ink.goto(3,-400)
def Draw():
window = turtle.Screen()
window.bgcolor =("White")
R = turtle.Turtle()
R.shape("circle")
R.color("Red")
R.setpos(4,3)
R.speed(100)
G = turtle.Turtle()
G.shape("circle")
G.color("Green")
G.setpos(3,3)
G.speed(100)
B = turtle.Turtle()
B.shape("circle")
B.color("Blue")
B.setpos(2,3)
B.speed(100)
Stem = turtle.Turtle()
Stem.shape("circle")
Stem.speed(100)
Feather = turtle.Turtle()
Feather.shape("circle")
Feather.speed(100)
Feather.color("Yellow")
draw_fractal(R)
draw_fractal(G)
draw_fractal(B)
draw_feather(Feather)
draw_stem(Stem)
window.exitonclick()
Draw()
答案 0 :(得分:1)
下面是对您的代码进行的修改,以完全按照您的描述进行操作:
import turtle
def draw_flower(ink):
ink.up()
ink.home()
for degrees in range(10, 370, 10):
ink.down()
ink.forward(200)
ink.up()
ink.home() # resets angle to 0 degrees
ink.left(degrees) # so absolute angle, not relative
def draw_stem(ink):
ink.goto(1, -400)
ink.home()
ink.goto(5, -400)
ink.home()
ink.goto(3, -400)
def Draw():
window = turtle.Screen()
window.bgcolor("white")
stem = turtle.Turtle()
stem.color("green")
stem.speed("fast")
draw_stem(stem)
flower = turtle.Turtle()
flower.color("yellow")
flower.speed("fastest")
draw_flower(flower)
Draw()
turtle.done()
只需转到屏幕中央,画一条黄线,重置到屏幕中央,稍微转动并重复。请注意,turtle.home()
方法会影响乌龟的角度,因此我们必须对其进行调整:
此外,除了大于10之外,100对turtle.speed()
没有任何意义 - 使用符号参数来表明你的意图。