找到第三点

时间:2010-11-25 20:56:58

标签: math drawing

我有2分P1P2。我需要找到P3,以便

  • 所有要点都在同一条线上;
  • P3应与d(远离P2
  • 保持距离P1

我开始了一个复杂的系统,显然很难解决...... alt text

PS。

矢量答案很酷,但我使用C#而不知道如何在那里添加矢量。

2 个答案:

答案 0 :(得分:5)

P3 = P2 + d * ±(P2 - P1) / |P2 - P1|

修改

因为购物很容易:

mag = sqrt((P2x - P1x) ** 2 + (P2y - P1y) ** 2)
P3x = P2x + d * (P2x - P1x) / mag
P3y = P2y + d * (P2y - P1y) / mag

答案 1 :(得分:2)

我已将代码翻译为Objective C

float distanceFromPx2toP3 = 1300.0;    

float mag = sqrt(pow((px2.x - px1.x),2) + pow((px2.y - px1.y),2));
float P3x = px2.x + distanceFromPx2toP3 * (px2.x - px1.x) / mag;
float P3y = px2.y + distanceFromPx2toP3 * (px2.y - px1.y) / mag;

CGPoint  P3 = CGPointMake(P3x, P3y);