Math 确定三维点是否在二维圆内

Math 确定三维点是否在二维圆内,math,geometry,raytracing,Math,Geometry,Raytracing,我想确定点p(x,y,z)是否位于由圆心C(cx,cy,cz)、半径R和圆所在平面法线N定义的三维空间中的二维圆内 我知道,位于三维空间中二维圆上的点p由以下公式定义: p=R*cos(t)U+Rsin(t)*(NxU)+C 其中,U是从圆心到圆上任意点的单位向量。但是给定一个点Q,我怎么知道Q是在圆上还是在圆内?选择合适的参数t是什么?我要比较点Q的哪个坐标,看它们是否在圆内 谢谢。我会把它分成两部分: 确定点是否与圆在同一平面上(即,查看从中心到点的向量与法线的点积是否为零) 找出它是否在包

我想确定点p(x,y,z)是否位于由圆心C(cx,cy,cz)、半径R和圆所在平面法线N定义的三维空间中的二维圆内

我知道,位于三维空间中二维圆上的点p由以下公式定义:

p=R*cos(t)U+Rsin(t)*(NxU)+C

其中,U是从圆心到圆上任意点的单位向量。但是给定一个点Q,我怎么知道Q是在圆上还是在圆内?选择合适的参数
t
是什么?我要比较点Q的哪个坐标,看它们是否在圆内


谢谢。

我会把它分成两部分:

  • 确定点是否与圆在同一平面上(即,查看从中心到点的向量与法线的点积是否为零)

  • 找出它是否在包含圆的球体内(即,查看从中心到点的距离是否小于半径)


  • 将p投影到包含圆的平面上,称之为p’。当且仅当| P-P'|=0且| P'-C |愿意澄清您的符号吗?这是什么声音?看起来它可能是一个向量的大小,但它鼓励其他人在你的问题明确提出时提供有用的答案。我试图给他们加粗,但他们不加粗。。。。?U是粗体向量,表示向量。N也一样。编辑:我将字母从“代码”部分中删除,并将其加粗。您是否尝试查找有关3d鼠标拾取的信息?@HyperCas:我尝试过。我不确定它是否适用。问题似乎简单得多…?如果我想在我的检查中包括点的边界,我是否检查| P-C |假设你所有的坐标都是浮点数,这意味着你在做像“| P-P'|=0”这样的事情时应该小心。它很少精确到零,所以你可以做一些类似于“|P-P'|