确定3D点是否在2D圆内

时间:2010-04-07 15:54:36

标签: math geometry raytracing

我希望确定点P(x,y,z)是否在由其中心C(cx,cy,cz)定义的3D空间中的2D圆内,半径R和圆所在的平面的法线在N。

我知道位于3D空间中的2D圆上的点P由以下定义:

P = R * cos(t) U + R sin(t)*( N x U )+ C

其中 U 是从圆心到圆上任意点的单位矢量。但考虑到Q点,我如何知道Q是在圆圈内还是在圆圈内?选择适当的参数t是什么?我在哪个坐标上比较点Q,看它们是否在圆圈内?

感谢。

2 个答案:

答案 0 :(得分:10)

将P项目放到包含圆圈的平面上,称之为P'。当且仅当| P - P'|时,P将在圆圈中= 0和| P' - C | < R.

答案 1 :(得分:3)

我会把它分成两部分来做到这一点:

  1. 确定该点是否与圆在同一平面上(即,看看矢量的点积是从中心到点还是法线为零)

  2. 确定它是否在包含圆圈的球体内(即,查看从中心到该点的距离是否小于半径)。