Chapter 9 (三维几何变换) To Discuss The Methods for Performing Geometric Transformations.
平移变换 or P′ = T · P 重要 y ( x’, y’, z’ ) T=(tx, ty , tz ) ( x, y ,z ) x
Rotation 重要 z
Rotation 重要 Z轴旋转 x轴旋转 y轴旋转
绕任意轴的旋转变换 若物体绕与每个坐标轴均不平行的轴旋转。此时,仍需要旋转以使旋转轴 与某一选定的坐标轴对齐,然后将此轴变回到原始方位。若给定旋转轴和旋转 角,我们可以用五个步骤来完成所需旋转: 1) 平移物体使得旋转轴通过坐标原点; 2) 旋转物体使得旋转轴与某一坐标轴重合; 3) 绕坐标轴完成指定的旋转; 4) 用逆旋转使旋转轴回到其原始方向; 5) 用逆平移使旋转轴回到其原始位量。 我们可以将旋转轴变到三个坐标轴的任一个,z轴是较合理的选择。下面的 讨论阐述了应如何建立变换矩阵以实现将旋转轴变到z轴,及如何将旋转轴变回 到原来的位置。 任一旋转轴可由两个坐标点来决定,如图所示,或通过一个坐标点和旋转 轴与两个坐标轴间的方向角(或方向余弦)来决定。假设旋转轴由两点来确定, 若沿着从P2到P1的轴进行观察,旋转的方向为逆时针方向,则轴向量通过两点 可以定义为:
R(θ) = T-1· R-1 (α) · Ry-1(β) · Rz(θ) · Ry(β) · Rx(α) · T α´ x y z β x y z T Rx(α) Ry(β) Rz(θ) z x y x y z β x y z θ z x y Ry-1(β) T-1 R-1 (α) R(θ) = T-1· R-1 (α) · Ry-1(β) · Rz(θ) · Ry(β) · Rx(α) · T
R(θ) = T-1· R-1 (α) · Ry-1(β) · Rz(θ) · Ry(β) · Rx(α) · T α´ x y z β x y z T Rx(α) Ry(β) Rz(θ) z x y x y z β x y z θ z x y Ry-1(β) T-1 R-1 (α) R(θ) = T-1· R-1 (α) · Ry-1(β) · Rz(θ) · Ry(β) · Rx(α) · T
缩放变换 重要
绕固定点缩放变换 (xf ,yf ,zf) y z x (xf ,yf ,zf) y z x T(-xf ,-yf ,-zf) S(sx , sy , sz) (xf ,yf ,zf) y z x (xf ,yf ,zf) y z x T(xf , yf , zf)
The matrix representation for an arbitrary fixed-point scaling can be expressed as the concatenation of these translate-scale-translate transformations as T(xf , yf , zf) ·S(sx , sy , sz) ·T(-xf ,-yf ,-zf) =
distance from origin also scaled 缩放变换 Original scale all axes scale Y axis offset from origin distance from origin also scaled
其他变换 反射(对称) The matrix representation for the reflection of points relative to the xy plane is x’= x, y’= y, z’= – z.
The matrix representation for the reflection of points relative to the xz plane is x’= x, y’= –y, z’= z. The matrix representation for the reflection of points relative to the yz plane is x’= – x, y’= y, z’= z.
错切Shears
Shearing transformations can be used to modify object shapes. Transformations relative to the x axis. x’ = x , y’=y+a·x , z’=z+ b·x
Transformations relative to the y axis. x’=x+a·y , y’=y , z’=z+b·y Transformations relative to the z axis. x’=x+a·z , y’=y+b·z , z’=z
Composite Transformation As with two-dimensional transformations, we form a composite three-dimensional transformation by multiplying the matrix representations for the individual operations in the transformation sequence.This concatenation is carried out from right to left, where the rightmost matrix is the first transformation to be applied to an object and the leftmost matrix is the last transformation. A sequence of basic, three-dimensional geometric transformations are combined to produce a single composite transformation, which is then applied to the coordinate definition of an object.