3D线段和平面相交

3D线段和平面相交,第1张

3D线段和平面相交

我对此可能是错的,但是代码中有些地方似乎非常可疑。首先,请考虑以下这一行:

// calculate planefloat d = Dot(normal, coord);

在这里,您的值

d
对应于平面法线(向量)与空间中的点(平面上的点)之间的点积。这似乎是错误的。特别是,如果您有任何平面穿过原点,并将原点用作坐标点,则最终将进行计算

d = Dot(normal, (0, 0, 0)) = 0

并立即返回假。我不确定您打算在这里做什么,但是我很确定这不是您的意思。

该行中似乎可疑的另一个地方是这一行:

// Compute the t value for the directed line ray intersecting the planefloat t = (d - Dot(normal, rayOrigin)) / Dot(normal, ray);

请注意,您正在计算平面法线向量(向量)和射线的原点(空间中的点)之间的点积。这似乎很奇怪,因为这意味着根据射线在空间中的起源,用于射线的缩放比例会发生变化。我建议再看一次这段代码,看看这是否真的是您的意思。

希望这可以帮助!



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5020569.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存