如何通过在第一点添加距离来找到第二点?

时间:2013-04-02 11:59:09

标签: math 2d discrete-mathematics

在2D中。我从坐标计算距离7.071068:

  1. (10,10)
  2. (15,15)
  3. 但现在的问题是我想通过在First Point中添加距离找到第二点。怎么做?

2 个答案:

答案 0 :(得分:2)

只有2点之间的距离才能找到另一个点,这是不够的。你有一个完整的圆圈来满足这个需求(距离)。

你还需要两点之间的角度(让我们称之为phi)

如果我们调用距离d,从P1找到P2:

X2 = X1 + d * cos(phi)

Y2 = Y1 + d * sin(phi)

答案 1 :(得分:1)

基本上,您正在寻找整数解决方案:

dx * dx + dy * dy = 7.071068 * 7.071068

d2 = 7.071068 * 7.071068 = 50

整数根是7和1(49 + 1 = 50)。

找到整数根的最简单方法是蛮力。请注意,d2必须是整数,并且d2的某些值具有多个解决方案。 d2 = 25具有解(5和0)和(3和4)。 d2的其他值没有整数解,例如D2 = 3。

强力解算器的一些伪代码:

d2=50;
for (i=1; i*i < d2; i++) {
  if (is_square(d2 - i*i)) {
    // integer solution found, but there may be more than one solution, so keep checking
  }
}