在编程中增加一行的长度

时间:2013-09-27 06:27:28

标签: c computational-geometry xlib x11

我有一个三角形,如A(109,239),B(182,234)和C(140,157)所示。

我正在使用xlib编程来实现这个目标。

在三角形内的一个点上的鼠标点击事件中,我找到距离该点最近的顶点,然后我想将三角形​​外的线扩展为有限大的长度。

enter image description here

任何人都可以知道我该怎么做。我认为我们必须将一些值ex a,b添加到B(x + a,y + b),但我不确定如何计算a,b的值?

enter image description here

1 个答案:

答案 0 :(得分:0)

如果你知道2点p0和p1,你可以计算任何x的y:

y = (x - x0) * (y1 - y0) / (x1 - x0) + y0

因此,在您的情况下,这两个点将是鼠标点击点和顶点。

修改

您可以选择鼠标单击另一侧的x。

x = vertexX + (vertexX - mouseX);