如何从三维点列表中获取体素阵列,这些点构成体化体积中的一条线?

2024-09-29 19:35:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个点列表,代表一个三维体积的针/导管。这个体积是voxalized。我想得到连接点的线相交的所有体素。这条线需要穿过所有的点

理想情况下,由于圆针/导管有一个宽度,我希望能够得到与实际三维物体(即针/导管)相交的体素(我想这要困难得多,所以如果我能找到第一个问题的答案,我会非常高兴的!)

我使用的是最新版本的Anaconda(python3.7)。我见过一些类似的问题,但是代码总是在C++中,而且似乎没有一个是我要找的。我相当肯定我需要使用光线投射或三维布列森厄姆算法,但我不知道如何

谢谢你的帮助


Tags: 答案版本列表宽度情况体积代表物体
1条回答
网友
1楼 · 发布于 2024-09-29 19:35:19

最后我自己解决了这个问题。对于任何想知道怎么做的人,我将简要地解释一下

首先,因为所有导管都指向z轴的大致方向,所以我得到了沿该轴的切片厚度。两个输入点都落在一个切片上。然后我得到了两个输入点和z切片之间的直线的每个交点的坐标。接下来,因为我知道了导管的半径,并且我可以计算两点之间的角度,所以我能够在每个切片上围绕我之前找到的点绘制椭圆路径(当你以一定角度切割一个圆锥体时,横截面是一个椭圆)。然后我得到沿z轴的每个切片上所有体素的坐标,并检查哪些体素在椭圆路径内。这些体素描述了导管的体积。如果你想看我的代码,请告诉我

相关问题 更多 >

    热门问题