在2D中。我从坐标计算距离7.071068:
但现在的问题是我想通过在First Point中添加距离找到第二点。怎么做?
答案 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
}
}