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

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

三维变换

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

  • 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 ≠ 0 w\neq0 w=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 × 4 4\times4 4×4矩阵表示仿射变换
[ x ′ y ′ z ′ 1 ] = [ a b c t x d e f t y g h i t z 0 0 0 1 ] [ x y z 1 ] (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 ( s x , s y , s z ) = [ s x 0 0 t x 0 s y 0 t y 0 0 s z t z 0 0 0 1 ] (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 ( t x , t y , t z ) = [ 1 0 0 t x 0 1 0 t y 0 0 1 t z 0 0 0 1 ] (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)

旋转

x x x轴旋转
R x ( α ) = [ 1 0 0 t x 0 cos ⁡ α − sin ⁡ α t y 0 sin ⁡ α cos ⁡ α t z 0 0 0 1 ] (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α0

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值