如何将线段修剪到平截头体上?

MHO*_*OOO 5 math clipping

给定两个向量AB,它们形成线段L = AB。此外,给出视锥台F,该视锥台由其左,右,底,顶,近和远平面定义。

如何将L夹在F上

也就是说,测试一个交集,以及该交集出现在L的哪个位置?(请注意,如果线段与某个角的两侧相交,则它与平截头体可以有多个交集。)

如果可能,请提供代码示例(首选C ++或Python)。

Sar*_*ien 4

我现在不想为此编写代码,但如果我正确理解“平截头体”,以下应该可以工作。

  1. 直线与所有给定平面相交
  2. 如果有两个交叉点,那么就完成了。
  3. 如果只有一个交点,请计算前平面并相交。
  4. 如果仍然只有一个交点,请计算背平面并相交。

但我可能完全误解了。在这种情况下,请详细说明:)