我有一个由2个圆柱制成的3D形状:
点(黑色和白色)是每个圆柱上圆形末端的起源。我想得到3分(白点)所以我需要检测并排除圆柱体内的一个点(黑点)。我怎么才能发现它!
编辑:我有每个圆柱的边界框。
答案 0 :(得分:0)
在圆柱体的末端放置一个坐标系(比如沿 x - 轴放置)。要测试点 A 是否位于圆柱内(长度 L 且半径 R ),请执行以下操作
if( y^2+z^2 <= R^2 && x>=0 && x<=L )
{
// point (x,y,z) is inside cylinder
}
要使用上述内容,您需要将点(x_A,y_A,z_A)
的坐标转换为柱面(x,y,z)
的局部坐标。您需要提供有关如何在3D中定义柱面的更多信息,以便显示如何执行此操作的示例。我希望你做3D编程,你熟悉3D旋转并知道一些基本几何。