【发布时间】:2012-11-15 00:49:35
【问题描述】:
假设我在笛卡尔坐标平面上有两个点A 和B,它们的x 和y 坐标是双精度floats。如何找到点 C 的位置,该点是它们之间距离的任意百分比?
换句话说,以下方法中的内容是什么而不是“//Do magic to C”?请记住,A 和 B 分别由两个 doubles 组成,它们代表各自的 x 和 y 坐标。
public static findProgressPoint(DoublePoint A, DoublePoint B, double position)
{
if (position > 1 || position < 0) //Ensure that position is between 0 and 1, inclusive
position = position - (int)position;
DoublePoint C = new DoublePoint(0.0, 0.0);
//Do magic to C
return C;
}
【问题讨论】:
-
您希望点 C 位于 直线上 段 A-B,还是希望 any 点位于 dist(A,C) = R * 分布(B,C)?这将是一个夸张,IIRC。
-
任意百分比,你确定吗?如果该百分比 .5,则有两个这样的独特点......在这种情况下,我相信你需要一些三角函数来找出确切的点...
-
@wildplasser 实际上,所有这些点的轨迹都是一个圆。
-
我公式中的 R 不是半径,而是两个距离之间的比率。
-
@wildplasser 我希望它在线段 AB