<分区>
我正在编写一个将球体与区域光源相交的光线追踪程序。我有那个载体
- wo(w - 即将离任)
- wi(w - 传入)
- n(表面法线)
我如何将该 vector 从世界坐标系转移到局部坐标系。我搜索了一个 c++ 算法,该 vector 的转换位于同一个半球。谢谢。
注意: 例如,该局部坐标系中的法 vector 坐标为: n2 = vector (x=0, y=1, z=0)
编辑: 我正在搜索“wo1”、“wi1”和“n2”局部 xyz 坐标值。
<分区>
我正在编写一个将球体与区域光源相交的光线追踪程序。我有那个载体
我如何将该 vector 从世界坐标系转移到局部坐标系。我搜索了一个 c++ 算法,该 vector 的转换位于同一个半球。谢谢。
注意: 例如,该局部坐标系中的法 vector 坐标为: n2 = vector (x=0, y=1, z=0)
编辑: 我正在搜索“wo1”、“wi1”和“n2”局部 xyz 坐标值。
最佳答案
您将位于世界坐标系中的 vector 投影到构成局部坐标系基础的 vector 。
例如,如果您的本地坐标系基础是跨越您本地的三元组 vector (例如,Lx
、Ly
、Lz
) vector 空间。 wo
在本地系统中的坐标将是:
wo_local_x = wo . Lx;
wo_local_y = wo . Ly;
wo_local_z = wo . Lz;
其中 .
表示点积。
关于c++ - 将世界空间 vector 转换为局部空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33031758/