这一笔记记录了如何从 世界坐标————>相机相对坐标 的转换简单推导公式
以下所有的推导都在2阶的情况下,三阶相同,自行推导。
1.坐标系变化(对应书中3.4.1内容)
已知坐标系A为 X轴(1,0) Y轴(1.0) ; 坐标系B为 X轴(-1,0) Y轴(0,1)
问 在A坐标系中的p点(1,1) 在B坐标系中的坐标?
我们知道,向量的点乘是一个向量在另一个向量上的投影,在坐标单位级别相同的时候,只需要获得B相对于A的坐标。
这里可以直接看出来,算出P的坐标:
P(B) = (P(A)·(-1,0) , P(A) · (1,0) ) = (-1 , 1)
由此可以理解一般情况下,同原点时,坐标系变幻下的坐标变换。
三阶向量同二阶向量。
2.二阶投影变幻推导
现在我们有了坐标系变化的公式,还有一个变量要添加:坐标系B的初始位置。
第一部分的推导建立在同原点情况下,当坐标系B的原点改变,需要加上原点变换。
由此我们获得了完整公式:
P(B) = (
(P(A) - P(B)) ·P(B)X相对坐标 , (P(A) - P(B)) ·P(B)Y相对坐标 )
3.对应矩阵推导。
X = (P(A) - P(B)) ·P(B)X相对坐标 = P(A) ·P(B)X相对坐标 - P(B)·P(B)X相对坐标
这里令 P(A) = (X, Y) : 原点坐标 P(B) = Cx,Cy :相机坐标 P(B)X相对坐标 = (Ux,Uy)
同理.
Y = (P(A) - P(B)) ·P(B)Y相对坐标 中 P(B)Y相对坐标 = (Vx,Vy)
将相应带入得到:
P*(X, Y) = (X * UX +Y*UY + CX*UX + CY*UY , X*VX + X * VY +CX*VX + CY*VY)
建立矩阵:
{1,0,0} {UX, VX, 0}
{0,1,0} *{UY, VY, 0}
{X,Y,1} {(Cx,Cy)*(UX,UY),(Cx,Cy)*(VX,VY),1}
这里我的推导方式与书中完全不一样,我完全无法看懂书中的推导方式。。。还要求逆。
这里所有的推导都是二阶的,其实与三阶完全一样,变一下而已。
DirectX11笔记8:关于投影空间转换的推导
原文:http://www.cnblogs.com/Windogs/p/5049699.html