确定一个点是否在3d空间中从圆上的另一个点左侧或右侧?

时间:2016-09-15 12:06:02

标签: math vector equation

我想确定左侧区域或右侧区域中圆圈上另一个点是否有点。 (左和右只是符号解释的问题)。为此我计算了这两个点的叉积来创建法向量。 所以我面临的问题是我如何将法线解释为一个标量,它有一个标志,表明它是在圆圈的右半边还是左半边。

我已经为插图创建了一个gif(C'只是动画点C):

enter image description here

我的想法是在向量​​v中添加所有值。例如:

v = (0.16, 0.1, -0.2)
vSum = v.x + v.y + v.z = 0.06

result = sign(vSum) = 1

o = (-0.16, -0.1, 0.2)
oSum = o.x + o.y + o.z = -0.06

result = sign(oSum) = -1

不幸的是,只有当圆圈是静止的并且不旋转时,这才有效。 如果旋转标志发生变化,我的结果会被翻转,从而导致左右站点反转。并且点积仅产生正值,但这是在旋转圆时不会改变的值。也许这对我有帮助吗?

1 个答案:

答案 0 :(得分:0)

我认为,您的交叉产品如下:

c = cross(p - circle center, reference - circle center)

然后你可以用圆形法线取点积来得到符号:

sign(dot(c, circle normal))