• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Windogs

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

DirectX11笔记8:关于投影空间转换的推导

 

这一笔记记录了如何从  世界坐标————>相机相对坐标     的转换简单推导公式

 
以下所有的推导都在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. {1,0,0}  {UX,      VX,           0}
  2. {0,1,0} *{UY,      VY,           0}
  3. {X,Y,1}  {(Cx,Cy)*(UX,UY),(Cx,Cy)*(VX,VY),1}
 
这里我的推导方式与书中完全不一样,我完全无法看懂书中的推导方式。。。还要求逆。
这里所有的推导都是二阶的,其实与三阶完全一样,变一下而已。
 
 
 
 
 

posted on 2015-12-15 22:05  Windogs  阅读(381)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3