弧法线由 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)