现代计算机图形学笔记(二)——三维变换、正交&透视投影

本文详细介绍了三维变换,包括缩放、平移、旋转,并讲解了罗德里格斯旋转公式。接着阐述了视图变换,通过模拟相机的位置和朝向来变换场景。最后探讨了正交投影和透视投影,解释了如何从透视投影转换为正交投影,以实现不同的视觉效果。

三维变换

和上节一样,我们使用齐次坐标

  • 3D点:(x,y,z,1)⊤(x,y,z,1)^\top(x,y,z,1)
  • 3D向量:(x,y,z,0)⊤(x,y,z,0)^\top(x,y,z,0)

通常情况下,w≠0w\neq0w=0,3D点表示为(x/w,y/w,z/w,1)⊤(x/w,y/w,z/w,1)^\top(x/w,y/w,z/w,1)

则我们可以使用4×44\times44×4矩阵表示仿射变换
[x′y′z′1]=[abctxdeftyghitz0001][xyz1](1) \left[\begin{array}{l} x^{\prime} \\ y^{\prime} \\ z^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{ll} a & b & c & t_x \\ d & e & f & t_y \\ g & h & i & t_z \\ 0 & 0 & 0 & 1 \end{array}\right]\left[\begin{array}{l} x \\ y \\ z \\ 1 \end{array}\right] \tag{1} xyz1=adg0beh0cfi0txtytz1xyz1(1)

缩放

S(sx,sy,sz)=[sx00tx0sy0ty00sztz0001](2) \bold{S}(s_x,s_y,s_z)= \left[\begin{array}{ll} s_x & 0 & 0 & t_x \\ 0 & s_y & 0 & t_y \\ 0 & 0 & s_z & t_z \\ 0 & 0 & 0 & 1 \end{array}\right] \tag{2} S(sx,sy,sz)=sx0000sy0000sz0txtytz1(2)

平移

T(tx,ty,tz)=[100tx010ty001tz0001](3) \bold{T}(t_x,t_y,t_z)= \left[\begin{array}{ll} 1 & 0 & 0 & t_x \\ 0 & 1 & 0 & t_y \\ 0 & 0 & 1 & t_z \\ 0 & 0 & 0 & 1 \end{array}\right] \tag{3} T(tx,ty,tz)=100001000010txtytz1(3)

旋转

xxx轴旋转
Rx(α)=[100tx0cos⁡α−sin⁡αty0sin⁡αcos⁡αtz0001](4) \bold{R}_x(\alpha)= \left[\begin{array}{c} 1 & 0 & 0 & t_x \\ 0 & \cos\alpha & -\sin\alpha & t_y \\ 0 & \sin\alpha & \cos\alpha & t_z \\ 0 & 0 & 0 & 1 \end{array}\right] \tag{4} Rx(α)=10000cosαsinα00sinαcosα0t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值