我正在输入一个程序,根据输入(半径)绘制奥运五环。我的问题是,根据输入,我如何得到相应比例的位置坐标(x,y)?
我所有匹配的默认半径是70.输入70。
这是我的代码:
radius =input('Enter the radius of your circle: ') #Asking for radius of the circle
r = float(radius)
import turtle
t = turtle.Turtle
t = turtle.Turtle(shape="turtle")
#Circle one
t.pensize(10)
t.penup()
t.goto(0,0)
t.pendown()
t.color("green") #Adds Green
t.circle(r)
#Circle two
t.penup()
t.setposition(-160,0)
t.pendown()
t.color("yellow") #Adds yellow
t.circle(r)
#Circle three
t.penup()
t.setposition(110,60)
t.pendown()
t.color("red") #Adds red
t.circle(r)
#Circle four
t.penup()
t.setposition(-70,60)
t.pendown()
t.color("black") #Adds black
t.circle(r)
#Circle five
t.penup()
t.setposition(-240,60)
t.pendown()
t.color("blue") #Adds blue
t.circle(r)
答案 0 :(得分:1)
如何相应地缩放坐标?
代码 -
radius =input('Enter the radius of your circle: ') #Asking for radius of the circle
r = float(radius)
x = r / 70
import turtle
t = turtle.Turtle
t = turtle.Turtle(shape="turtle")
#Circle one
t.pensize(10)
t.penup()
t.goto(0,0)
t.pendown()
t.color("green") #Adds Green
t.circle(r)
#Circle two
t.penup()
t.setposition(-160 * x,0)
t.pendown()
t.color("yellow") #Adds yellow
t.circle(r)
#Circle three
t.penup()
t.setposition(110 * x,60 * x)
t.pendown()
t.color("red") #Adds red
t.circle(r)
#Circle four
t.penup()
t.setposition(-70 * x,60 * x)
t.pendown()
t.color("black") #Adds black
t.circle(r)
#Circle five
t.penup()
t.setposition(-240 * x,60 * x)
t.pendown()
t.color("blue") #Adds blue
t.circle(r)
您还可以根据输入缩放pensize。
答案 1 :(得分:0)
你需要的是一个乘数。你的代码实际上是重复的,只要你有这样的东西你想要使用循环而不是一堆命令,这将使你的代码更容易维护和更具可读性。这将是我的方法:
radius =input('Enter the radius of your circle: ') #Asking for radius of the
circle
r = float(radius)
import turtle
t = turtle.Turtle(shape="turtle")
m = r/70
colors = ["green", "yellow", "red", "black", "blue"]
coordinates = [(1,1), (-160,0), (110,60), (-70,60), (-240,60)]
t.pensize(10)
for i in range(len(coordinates)):
t.penup()
t.goto(coordinates[i][0]*m, coordinates[i][1]*m)
t.pendown()
t.color(colors[i])
t.circle(r)
将点归一化并将它们乘以常数会更好,更灵活。