0

我在简单的二维欧几里得空间中有一组有限的点(我知道这些点的坐标)。

假设我在二维欧几里得空间中选择点 A(x1,y1) 和 B(x2,y2)。所以我有一条线AB。我需要找到这样的点 C 的坐标(实际上我需要找到点 C 是否在我的点集中),AB = AC 的长度和线 AB 和 AC 形成直角。(实际上两点应该满足这些条件:在线AB的一侧和另一侧)

这应该在恒定时间内完成。

4

1 回答 1

1

您基本上只想将 B 点围绕 A 点旋转 90 度,对吗?如果是这样,那么首先将 A 平移到原点,然后旋转,然后平移回来。

C = [-(y2-y1)+x1,x2-x1+y1]; // rotate +90 deg
C = [y2-y1+x1,-(x2-x1)+y1]; // rotate -90 deg
于 2012-08-31T16:58:50.903 回答