考虑到我的圆圈半径,尝试调整位置坐标(Python)

时间:2016-05-20 19:09:59

标签: python turtle-graphics

我正在输入一个程序,根据输入(半径)绘制奥运五环。我的问题是,根据输入,我如何得到相应比例的位置坐标(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)

2 个答案:

答案 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)

将点归一化并将它们乘以常数会更好,更灵活。