一个在世界坐标中v(x,y,z)的点A,变换为视见坐标中v'(x',y',z')
首先确定好视见坐标系的三个坐标轴 x,y,z的方向失量。
其次,确定视见坐标原点到这个点A的方向失量q。
两个失量求点积就可以了。(新坐标系的x轴失量与q求点积得到x',以此类推.)
zaxis = normal(At - Eye)
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1
xaxis = normal(cross(Up, zaxis))
yaxis = cross(zaxis, xaxis)
xaxis.x yaxis.x zaxis.x 0
xaxis.y yaxis.y zaxis.y 0
xaxis.z yaxis.z zaxis.z 0
-dot(xaxis, eye) -dot(yaxis, eye) -dot(zaxis, eye) 1