Python:尝试在同一个文件中创建2个不同的形状

时间:2017-08-22 06:51:46

标签: python turtle-graphics

您好我是python的新手,我试图用乌龟制作两种不同的形状。

import turtle
from turtle import 
color('blue', 'red')
begin_fill()
while True:
    turtle.fd(150)
    turtle.left(144)
    if abs(pos()) < 1:
        break
end_fill()
done()

我有这个第一个有效地工作,但我试图围绕它做一个圆圈,但我似乎甚至不能制作一个,用这个:

color('blue', 'red')
begin_fill()
while True:
    turtle.circle(555)
    if abs(pos()) < 1:
        break
end_fill()
done()

2 个答案:

答案 0 :(得分:0)

你可以这样做。

import turtle
from turtle import *
color('blue', 'red')
begin_fill()
while True:
    turtle.fd(150)
    turtle.left(144)
    if abs(pos()) < 1:
        break

end_fill()
turtle.penup()
turtle.sety(25)
turtle.setx(-1.2)
turtle.right(90)
turtle.pendown()
turtle.circle(78)
done()

我认为我的计算错误了几位小数。但我想这应该会给你一个想法。

enter image description here

同样在您的代码中,我看到您使用了while循环来绘制圆圈。你的想法是正确的,你需要打破圆形图,但circle函数会处理这个并在它到达起始位置后自动停止。注意我使用了circle函数而没有使用任何循环。

答案 1 :(得分:0)

意识到turtle.circle()是一个常规的多边形绘制例程,我们可以更简单:

import turtle

turtle.color('blue', 'red')

turtle.begin_fill()
turtle.circle(79, extent=720, steps=5)
turtle.end_fill()

turtle.circle(79)

turtle.done()

enter image description here

或者,如果您想坚持使用当前的算法,我们可以这样做:

import turtle

turtle.color('blue', 'red')

turtle.begin_fill()
while True:
    turtle.fd(150)
    turtle.left(144)
    if abs(turtle.pos()) < 1:
        break
turtle.end_fill()

turtle.setheading(-69)

while True:
    turtle.fd(8.25)
    turtle.left(6)
    if abs(turtle.pos()) < 1:
        break

turtle.done()

enter image description here