如何编写代码,让turtle使用两次单击(一次单击设置起点,第二次单击定义的边长度)绘制一个类似于绘画的正方形
我想:点击一次设置一个正方形的中心;移动鼠标定义正方形的边长;再次单击以绘制具有定义的边长度和中心点的正方形。但我无法控制它;你有什么想法吗?我还试图创建一个调色板,这样我可以改变我的海龟绘图颜色,如果我点击其中一种颜色,但它不工作
这是我的密码:
import turtle
beni=turtle.Screen()
beni.setup(900,700,)
t=turtle.Turtle()
#color palette
t1=turtle.Turtle()
t1.shape("circle")
t1.color("blue")
t1.penup()
t1.setposition(250, 300)
t2=turtle.Turtle()
t2.shape("circle")
t2.color("red")
t2.penup()
t2.setposition(220,300)
t3=turtle.Turtle()
t3.shape("circle")
t3.color("green")
t3.penup()
t3.setposition(280, 300)
def funktion(x,y):
t.color("green")
t.pencolor("green")
t3.onclick(funktion)
def funktion(x, y):
t.color("blue")
t.pencolor("blue")
t2.onclick(funktion)
def funktion(x, y):
t.color("red")
t.pencolor("red")
t1.onclick(funktion)
#freehandmode
def freehandmode(x, y):
t.ondrag(None)
t.goto(x, y)
t.ondrag(freehandmode)
t.ondrag(freehandmode)
#linemode
class Drawer:
def __init__(self):
self.drawing = False
def click(self, x, y):
if self.drawing:
turtle.down()
turtle.goto(x, y)
self.drawing = False
else:
turtle.up()
turtle.goto(x, y)
self.drawing = True
d = Drawer()
beni.onclick(d.click)
#squaremode
turtle.up()
turtle.mainloop()
有几种方法可以做到这一点,我将通过交换事件处理程序来做到这一点,以便第一次和第二次单击具有不同的含义。我将使用圆(选择中心,然后是边)来保持我的示例简单,并留下一些几何图形供您思考:
相关问题 更多 >
编程相关推荐