弧法线由 3 点给出
Arc normal given by 3 points
我很难找到由 3 个点(按顺序)给出的圆弧的法线。根据我的搜索,这是我对计算二维法线的理解:
我们可以定义 3 个点 A、B、C(在 2D 中),其中 B 在 A 和 C 之间,我们想找到 B 处的法线,它由下式给出:
N = [Ay - Cy;Cx - Ax];
这是正确的吗?如果是这样,我如何计算(字面意思)位于法线上一定距离(假设 d = 7)的点(假设 P)。举例说明:
P(x,y)
|
| d=7
B
A C
请指教 - 谢谢。
p.s。我也很欣赏一些文献链接,这些链接解释了在 2D 中估计法线的方法(尽管我理解 "normal" 在 2D 中的问题)。
如果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)
我很难找到由 3 个点(按顺序)给出的圆弧的法线。根据我的搜索,这是我对计算二维法线的理解:
我们可以定义 3 个点 A、B、C(在 2D 中),其中 B 在 A 和 C 之间,我们想找到 B 处的法线,它由下式给出:
N = [Ay - Cy;Cx - Ax];
这是正确的吗?如果是这样,我如何计算(字面意思)位于法线上一定距离(假设 d = 7)的点(假设 P)。举例说明:
P(x,y)
|
| d=7
B
A C
请指教 - 谢谢。
p.s。我也很欣赏一些文献链接,这些链接解释了在 2D 中估计法线的方法(尽管我理解 "normal" 在 2D 中的问题)。
如果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)