我正在努力找到由3点(按顺序)给出的弧的法线。从我的搜索中,这是我在2D中计算法线的理解:
我们可以定义3点A,B,C(在2D中),其中B在A和C之间,我们想在B处找到由下式给出的法线:
N = [Ay-Cy; Cx-Ax];
这是对的吗?如果是这样,我如何计算(字面上)一个点(假设P)位于距离法线上(假设d = 7)。举例说明:
P(x,y)
|
| d=7
B
A C
请建议 - 谢谢。
P.S。我也很欣赏一些文献链接,这些链接解释了在2D中估算法线的方法(虽然我理解"普通"在2D中的问题)。
答案 0 :(得分:0)
如果 B位于弧的正中间,那么您的法线是正确的。 +/-方向存在歧义,但您可以使用AB和BC矢量的叉积符号选择外部法线方向。
要找到P点,您必须将N
标准化N = (Nx, Ny)
Len(N) = Sqrt(Nx*Nx + Ny*Ny) //Hypot is some math libraries
n = (Nx/Len, Ny/Len)
P = B + Dist * n
(Px, Py) = (Bx + Dist*nx, By + Dist*ny)