相交线和点数组?

时间:2010-06-01 09:52:38

标签: algorithm math graphics

我在正常图表中有一条线,我想知道与该线相交的一些点,任何公式吗?有什么帮助吗? 该行是从起点(50,50),终点(50,0)....某些点可能是(0,10),(2,45)等。

2 个答案:

答案 0 :(得分:2)

  1. 制作线方程
  2. 检查您的观点是否满足该等式。
  3. 通过2个任意点(x1,y1)和(x2,y2)的直线方程为:

    (y1-y2)x + (x2-x1)y + (x1*y2 - x2*y1) = 0
    

    在您的情况下,线条只是垂直的,其等式为

    x = 50
    

    如果你还想检查点是否属于线段而不是整行,你可以检查以下不等式是否成立(除了之前的条件)(可能它不是最优雅/最有效的解决方案) ):

    (x-x1)*(x-x2)+(y-y1)*(y-y2) < 0
    

答案 1 :(得分:1)

好吧,如果你知道你感兴趣的那条线的端点很容易。该行上的任何一点都有公式

a * p1 + (1-a) * p2

其中p1,p2是端点,a是标量。如果a介于0和1之间,则点位于端点之间。