最近在做一个游戏需求中用到了和几何计算有关的知识,需要去计算射线和一个平面的交点,计算方法在这里记录一下。
首先定义一条射线:起始点p0和方向d,那么射线上任意一点p=p0 + td
平面的定义则通过一个法向n和一个顶点来实现,对于平面上的所有点pp·n = d,d是一个常数。
那么要计算它们之间的相交就不难了,若射线和平面相交,则必有:
(p0 + tdn = d
p0·n + td·n = d
最终可得:
t=(d - p0·n)/(d·n)。
如果射线和平面互相平行,则d·n = 0,它们之间没有交点。d的计算则通过找平面上的一个点p,取p·n = d来实现。

相关文章:

  • 2021-11-19
  • 2021-12-05
  • 2021-11-20
  • 2022-12-23
  • 2021-06-28
  • 2021-07-02
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2021-04-11
  • 2021-10-11
  • 2022-12-23
  • 2021-12-24
相关资源
相似解决方案