Math C/光线跟踪:计算与不与轴对齐的有限圆柱体的交点

Math C/光线跟踪:计算与不与轴对齐的有限圆柱体的交点,math,raytracing,Math,Raytracing,我正在做光线追踪,进展很顺利,我介绍了4种不同的形状(正方形、三角形、平面、球体)。现在我需要介绍一个圆柱体,但我面临一个问题。我找到的所有文件都是从假设开始的 它与Z轴对齐 这不是我的情况!我的圆柱体由点、宽度、高度和旋转来定义。我开始研究,但所有的解决方案都表明圆柱体与轴对齐,我找不到如何使用它。在坐标系F_1中有一条线(光线)·L。该坐标系中的圆柱体C未与z轴对齐。旋转坐标框,使C与z轴对齐。调用结果F_2。将反向转换应用于L。现在L和C都是相对于F_2来表示的,您可以使用您找到的算法。找

我正在做光线追踪,进展很顺利,我介绍了4种不同的形状(正方形、三角形、平面、球体)。现在我需要介绍一个圆柱体,但我面临一个问题。我找到的所有文件都是从假设开始的

它与Z轴对齐


这不是我的情况!我的圆柱体由点、宽度、高度和旋转来定义。我开始研究,但所有的解决方案都表明圆柱体与轴对齐,我找不到如何使用它。

在坐标系F_1中有一条线(光线)·
L
。该坐标系中的圆柱体
C
未与
z
轴对齐。旋转坐标框,使
C
z
轴对齐。调用结果
F_2
。将反向转换应用于
L
。现在
L
C
都是相对于
F_2
来表示的,您可以使用您找到的算法。找到交点后,将其转换回原始坐标系。不要旋转,而是通过3个基向量(2个基向量,1个轴向量)和半径和高度(它们可以编码为基向量的大小)定义圆柱体,从那里可以轻松转换为轴对齐圆柱体,只需计算
点即可(向量,基向量)
这将为您提供轴对齐圆柱体中的坐标…因此对所有基向量执行此操作,就是这样…请参阅