3d传染媒介和立方体的交叉点的位置

时间:2010-07-06 06:50:37

标签: c

目前我对此总是一记空白。

我有一个立方体(体素),由一个中心点和宽度,高度和深度1定义。 如果我有一个从盒子中心起源的矢量(例如(-0.7,-0.7,-0.7)),我如何计算矢量与盒子外部相交的点?

编辑:框始终与轴对齐。 问题出在3d。

由于

1 个答案:

答案 0 :(得分:2)

盒子表面上的任何一点都至少有一个等于0.5或-0.5的坐标,其他所有点都是-0.5 <= c <= p。

因此,找到具有最大绝对值的坐标,然后缩放矢量以使该坐标等于+/- 0.5。

这样的事可能有用:

if (fabs(x) > fabs(y) && fabs(x) > fabs(z))
    y *= 0.5 / fabs(x)
    z *= 0.5 / fabs(x)
    x *= 0.5 / fabs(x)
else if (fabs(y) > fabs(z))
    x *= 0.5 / fabs(y)
    z *= 0.5 / fabs(y)
    y *= 0.5 / fabs(y)
else
    x *= 0.5 / fabs(z)
    y *= 0.5 / fabs(z)
    z *= 0.5 / fabs(z)