将世界空间向量转换为局部空间

时间:2015-10-09 06:54:12

标签: c++ math vector raytracing coordinate-systems

我正在编写一个光线跟踪程序,它将球体与区域光源相交。我有那些载体

  • wo(w - outgoing)
  • wi(w - incoming)
  • n(表面法线)

enter image description here

如何将矢量从世界坐标系转移到局部坐标系。我在搜索c ++算法时,对这些向量的变换位于同一个半球中。谢谢。

注意:  例如,该局部坐标系中的法线矢量坐标是: n2 =向量(x = 0,y = 1,z = 0)

编辑: 我正在搜索“wo1”,“wi1”和“n2”本地xyz坐标值。

1 个答案:

答案 0 :(得分:1)

将位于世界坐标系中的矢量投影到构成局部坐标系基础的矢量。

例如,如果您的本地坐标系基础是跨越您的局部向量空间的向量的三元组(例如,LxLyLz)。本地系统中的wo坐标为:

wo_local_x = wo . Lx;
wo_local_y = wo . Ly;
wo_local_z = wo . Lz;

其中.表示点积。