我有一个点列表,这些点表示3D体积中的针头/导管。此卷已草草化。我想获得连接该点的线相交的所有体素。这条线需要经过所有点。
理想地,由于圆形的针头/导管具有一定的宽度,我希望能够获得与实际的三维对象(即针头/导管)相交的体素。 (我想这要困难得多,所以如果我能得到第一个问题的答案,我会很高兴的!)
我正在使用最新版本的Anaconda(Python 3.7)。我看到了一些类似的问题,但是代码始终是C ++,似乎都不是我要找的东西。我相当确定我需要使用光线投射或3D Bresenham算法,但是我不知道该怎么做。
感谢您的帮助!
答案 0 :(得分:0)
我最终自己解决了这个问题。对于任何想知道如何做的人,我都会简要地解释一下。
首先,由于所有导管都指向z轴的大致方向,因此我得到了沿该轴的切片厚度。两个输入点都落在一个切片上。然后,我得到了两个输入点和z切片之间的线之间的每个交点的坐标。接下来,由于我知道导管的半径并且可以计算两个点之间的角度,因此我能够围绕先前找到的点在每个切片上绘制椭圆路径(当您以一定角度和角度切割圆锥时,截面是椭圆)。然后,我获得了沿z轴每个切片上所有体素的坐标,并检查了椭圆路径中的哪些体素。这些体素是描述导管体积的体素。如果您想查看我的代码,请告诉我。