Geometry 弧法线由3点给出

Geometry 弧法线由3点给出,geometry,computational-geometry,Geometry,Computational Geometry,我正在努力寻找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

我正在努力寻找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、 我也希望能有一些文献的链接,解释如何估计2D中的法线(尽管我理解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)

我在检查法线方向时遇到问题。假设我的点是A(-4,-2),B(3,0)和C(1,1)。AB的叉积为-12,BC的叉积为3。N=从上方开始的(-3,5)。距离d处的点应为(+,+)或(+,-)。如何得到后者?这个例子不满足B-middle属性,所以N是错误的,如果交叉(AB,BC)>0,则否定N的两个分量