通过拖动从椭圆形到另一个椭圆形创建一条线
Create a line from an oval to another by dragging
我正在做一个代表友谊网络的项目。我用椭圆代表朋友,用线条代表他们的友谊。
我已经查看了如何绑定事件,到目前为止我了解如何绑定事件:
def line(self, event):
x1, y1 = (event.x - 1), (event.y - 1)
x2, y2 = (event.x + 1), (event.y + 1)
self.display_canvas.create_line(x1, y1, x2, y2, fill="black")
但这只画了一个像素的线,并且跟随鼠标的轨迹。
我想做的是创建一条直线,它也跟随鼠标直到它停在一个椭圆上,并且只有当它开始在一个椭圆上时。
看起来像这样(完全一样,只是我不能通过拖动来完成):!http://s17.postimg.org/lhveezdi7/line.png
谢谢。
在 <B1>
事件中,记住 x/y 坐标。在 <B1-Motion>
上,从记住的坐标到事件的坐标画一条线。在任何时间点,您都可以使用 canvas 的 find_*
函数检查坐标是否超过或接近椭圆。
我正在做一个代表友谊网络的项目。我用椭圆代表朋友,用线条代表他们的友谊。
我已经查看了如何绑定事件,到目前为止我了解如何绑定事件:
def line(self, event):
x1, y1 = (event.x - 1), (event.y - 1)
x2, y2 = (event.x + 1), (event.y + 1)
self.display_canvas.create_line(x1, y1, x2, y2, fill="black")
但这只画了一个像素的线,并且跟随鼠标的轨迹。
我想做的是创建一条直线,它也跟随鼠标直到它停在一个椭圆上,并且只有当它开始在一个椭圆上时。
看起来像这样(完全一样,只是我不能通过拖动来完成):!http://s17.postimg.org/lhveezdi7/line.png
谢谢。
在 <B1>
事件中,记住 x/y 坐标。在 <B1-Motion>
上,从记住的坐标到事件的坐标画一条线。在任何时间点,您都可以使用 canvas 的 find_*
函数检查坐标是否超过或接近椭圆。