410 likes | 584 Views
第三章 图形变换与输出. 3.1 图形的几何变换. 3.2 坐标系统及其变换. 3.3 图元输出与输出属性. 3.1 图形的几何变换. 基本的几何变换研究物体坐标在直角坐标系内的平移、 旋转和变比的规律。. 主要介绍 二维图形几何变换 三维图形几何变换 参数图形几何变换. ( x’ , y’ ). x. (T x ,T y ). ( x , y ). 3.1 图形的几何变换. 3.1.1 二维图形几何变换. 一、基本变换 ⒈ 平移 (Translation). 将图形对象从一个位置 (x, y) 移
E N D
第三章 图形变换与输出 3.1 图形的几何变换 3.2 坐标系统及其变换 3.3 图元输出与输出属性
3.1 图形的几何变换 基本的几何变换研究物体坐标在直角坐标系内的平移、 旋转和变比的规律。 主要介绍 • 二维图形几何变换 • 三维图形几何变换 • 参数图形几何变换
(x’, y’) x (Tx,Ty) (x, y) 3.1 图形的几何变换 3.1.1 二维图形几何变换 一、基本变换 ⒈平移(Translation) 将图形对象从一个位置(x, y)移 到另一个位置(x′,y′)的变换。 x = x+Tx y = y+Ty
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 一、基本变换 ⒉旋转(Rotation) y q 点(x, y)围绕原点逆时针转 动一个角度, (x’, y’) (x, y) x = x cos y sin y = y cos + x sin f x
(x’, y’) y q (x, y) (xr, yr) f x x = xr+(xxr)cos (yyr)sin y = yr+(yyr)cos +(xxr)sin 3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 一、基本变换 ⒉旋转(Rotation) 将以某个参考点(xr, yr)为圆心, 将对象上的各点(x, y)围绕圆心转 动一个逆时针角度. x = x cos y sin y = y cos + x sin newx = xxr newy = yyr newx = newx cos newy sin newy = newy cos + newx sin x = newx + xr y = newy + yr
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) y 一、基本变换 ⒊变比(Scaling) (x’, y’) 使对象按比例因子(Sx, Sy)放大或缩 小的变换 x = x · Sx y = y · Sy (x, y) (3.1) x 固定点变比(scaling relative to a fixed point)。以a为固定点 1((1)作平移Tx=xa,Ty=ya; 2((2)按式(3.1)作变比; 3((3)作1)的逆变换,即作平移Tx=xa,Ty=ya。
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 一、基本变换 ⒊变比(Scaling) 当比例因子Sx或Sy小于0时,对象不仅变化大小,而且分别按x轴或 y轴被反射
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 二、变换矩阵 ⒉ 平的矩阵运算表示为 (3.2) 简记为p=p·T(Tx, Ty)。其中,p=[xy 1],p=[xy 1]。 表示平移矩阵。
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 二、变换矩阵 ⒉ 旋转的矩阵运算表示为 (3.2) 简记为p=pR(),其中R()表示旋转矩阵。
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 二、变换矩阵 ⒊ 变比的矩阵运算表示为 (3.3) 简记为p=pS(Sx, Sy),其中(Sx, Sy)表示变化矩阵。
y x o 3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 三、级联变换(Composite Transformation) 对于复杂的图形变换,需要通过若干个变换矩阵的级联才能实 现。这里特别要注意的是矩阵级联的顺序,由于矩阵的乘法运算不 适用交换率,因此矩阵级联的顺序不同所得到的变换结果也不相同。 例如:对任意直线的对称变换(直线方程为 Ax + By + C = 0)
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 三、级联变换(Composite Transformation) y y x x x o o cosα-sinα 0 T2= sinα cosα 0 0 0 1 1 0 0 T1 = 0 1 0 C/A 0 1
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 三、级联变换(Composite Transformation) y y y x x x o o o 1 0 0 T3 = 0 -1 0 0 0 1 cosα sinα 0 T4 = -sinα cosα 0 0 0 1 1 0 0 T5= 0 1 0 -C/A 0 1
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 三、级联变换(Composite Transformation) 组合变换矩阵为: cos2α sin2α 0 T =T1×T2×T3×T4×T5= sin2α -cos2α 0 (cos2α-1)C/A sin2α*C/A 1 [xy 1]= [xy 1]T
3.1 图形的几何变换 3.1.1 二维图形几何变换(续) 四、二维几何变换的指令 ⒈建立变换矩阵的指令为 creat_transformation_matrix(xf, yf, Sx, Sy, xr, yr, , Tx, Ty, matrix); ⒉积累变换的指令为 accumulate_transformation_matrix(matrix1, matrix2, matrix); ⒊坐标变换的指令为 set_segment_transformation(Id, matrix);
3.1 图形的几何变换 3.1.2 三维图形几何变换 (x’, y’, z’) ⒈旋转 (x, y, z) 1) 绕z轴旋转的公式为 x = xcos ysin y = xsin +ycos z = z 矩阵运算的表达式为 x z
3.1 图形的几何变换 3.1.2 三维图形几何变换(续) y ⒈旋转 (x, y, z) (x’, y’, z’) 2) 绕x轴旋转的公式为 x = x y = ycos zsin z = ysin +zcos 矩阵运算的表达式为 x z
3.1 图形的几何变换 3.1.2 三维图形几何变换(续) y ⒈旋转 (x’, y’, z’) (x, y, z) 3) 绕y轴旋转的公式为 x = zsin +xcos y = y z = zcos xsin 矩阵运算的表达式为 x z
3.1 图形的几何变换 3.1.2 三维图形几何变换(续) ⒈旋转 4) 绕任意轴旋转 图3.6 绕任意轴P1P2旋转的前4个步骤
3.1 图形的几何变换 3.1.2 三维图形几何变换(续) ⒉变比 设Sx、Sy、Sz是物体在3个坐标轴方向的比例变化量,则有公式 x = xSx,y = ySy,z = zSz 矩阵运算的表达式为
3.1 图形的几何变换 3.1.3 参数图形几何变换(续) ⒈圆锥曲线的几何变换 圆锥曲线的二次方程是Ax2+Bxy+Cy2+Dx+Ey+F=0,其相应的矩阵表达式是 简记为XSXT=0。 ⑴平移变换。若对圆锥曲线进行平移变换,平移矩阵是 Tr= , 则平移后的圆锥曲线矩阵方程是XTrSTrTXT=0。
3.1 图形的几何变换 3.1.3 参数图形几何变换(续) ⒈圆锥曲线的几何变换 ⑵旋转变换。若对圆锥曲线相对坐标原点作旋转变换,旋转变换 矩阵是 R= , 则旋转后的圆锥曲线矩阵方程是XRSRTXT=0。 若对圆锥曲线相对(m, n)点作旋转角变换,则旋转后的圆锥曲线 是上述Tr、R变换的复合变换,变换后圆锥曲线的矩阵方程是 XTrRSRTTrTXT=0。 ⑶比例变换。若对圆锥曲线相对(m, n)点进行比例变换,比例变 换矩阵为 ST= , 则变换后圆锥曲线的矩阵方程是XTrSTSSTTTrTXT=0。
3.1 图形的几何变换 3.1.3 参数图形几何变换(续) ⒉参数曲线、曲面的几何变换 若指定一个平移矢量t,对曲线平移t,即对曲线上的每一点P都 平移t。对平移后的点P*有 P* = P+t 对于参数曲线和曲面的几何系数矩阵B和代数系数矩阵A,可以直 接实现平移变换,即有 B* = B+T,T= [tt 0 0]T B*是经平移后参数曲线的几何系数矩阵,变换结果如图所示。
3.2 坐标系统及其变换 3.2.1 坐标系统 1. 世界坐标系(World Coordinates) 为了描述被处理的对象,要在对象所在 的空间中定义一个坐标系,这个坐标系的长 度单位和坐标轴的方向要适合对被处理对象 的描述,这个坐标系通常就称之为世界坐标 系或用户坐标系。世界坐标系一般采用右手 三维笛卡儿坐标系。 z o y x
3.2 坐标系统及其变换 3.2.1 坐标系统(续) 2. 观察坐标系(View Coordinates) 产生三维物体的视图,必须规定观 察点(视点)和观察方向。 好比照相时选择拍摄的位置和方向。 左手笛卡儿坐标系(上图):观察坐标 系的原点通常设置在观察点(视点),Z轴作 为观察方向。 右手笛卡儿坐标系:视点确定在Z轴 上的某一个位置,Z轴仍为观察方向(下图)。 y z x o 视点 y x o z 视点
3.2 坐标系统及其变换 3.2.1 坐标系统(续) 3. 设备坐标系(Device Coordinates) 与图形设备相关连的坐标系叫设备坐标系。 例如,显示器以分辨率确定坐标单位,原点在左下角或左上角; 绘图机绘图平面以绘图精度确定坐标单位,原点一般在左下角。 4. 规格化设备坐标系(Normal Device Coordinates) 为了使图形处理过程做到与设备无关,通常采用一种虚拟设备 的方法来处理,也就是图形处理的结果是按照一种虚拟设备的坐 标规定耒输出的。这种设备坐标规定为0≤X≤1,0≤Y≤1,这种 坐标系称之为规格化设备坐标系。
3.1 图形的几何变换 3.2.2 规格化变换与设备坐标变换 ⒈规格化变换 从窗口到视区的变换,称为规格化变换(Normalization Transformation)。 y y V(视图区) W(窗口) vyT wyT (wx,wy) (vx,vy) vyB wyB x x o o wxL wxR vxL vxR
3.1 图形的几何变换 3.2.2 规格化变换与设备坐标变换(续) ⒈规格化变换 = vx – vxL wx – wxL 由两图的比例关系: vxR – vxL wxR – wxL vy – vyB wy – wyB vyT–vyB wyT –wyB 可得: vxR – vxL wxR – wxL vyT –vyB wyT –wyB = vx = • ( wx – wxL ) + vxL • ( wy – wyB ) + vyB vy =
3.1 图形的几何变换 3.2.2 规格化变换与设备坐标变换(续) ⒉窗口操作 ⑴视野的变化(zooming)。 ⑵摇镜头(panning)。 ⑶多重窗口(multiple window)。
3.1 图形的几何变换 3.2.2 规格化变换与设备坐标变换(续) ⒊从规格化坐标(NDC)到设备坐标(DC)的变换 ⑴通常采用的公式 xDC=Sx·xNDC+dx,yDC=Sy·yNDC+dy ⑵方向的考虑 ⑶对设备坐标中像素中心的变换
3.1 图形的几何变换 3.2.3 投影变换 投影(project)是一种使三维对象映射为二维对象的变换。它可描述为 project(object(x, y, z))→object(x, y, z) 投影的要素除投影对象、投影面外,还有投影线。 按照投影线角度的不同,有两种基本投影方法: ⑴平行投影(parallel projection)。 它使用一组平行投影将三维对象投影到投影平面上去。 ⑵透视投影(perspective projection)。它使用一组由投影中心 产生的放射投影线,将三维对象投影到投影平面上去。
3.1 图形的几何变换 3.2.3 投影变换(续) 1 平行投影-正交平行投影(orthographic P. P.) 正投影的投影面与某一坐标轴垂直,而投影方向与该坐标轴的方向一致。 正投影的图形,在长宽高三个方向上的比例与实物保持一 致,因此,常用于工程制图。 z 主视图 侧视图 y 俯视图 x
3.1 图形的几何变换 3.2.3 投影变换(续) 2 平行投影-斜交平行投影(oblique P. P.) 投影线与投影平面成交角 正投影与斜投影
3.1 图形的几何变换 3.2.3 投影变换(续) 3 透视投影变换 • 投影中心与投影平面之间的距离为有限 • 参数:投影方向 • 例子:室内白炽灯的投影,视觉系统 • 灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点. • 主灭点:平行于坐标轴的平行线的灭点。 • 一点透视 • 两点透视 • 三点透视 • 特点:产生近大远小的视觉效果,由它产生的图形深度感强,看起来更加真实。
3.1 图形的几何变换 3.2.3 投影变换(续) 3 透视投影变换
3.1 图形的几何变换 3.2.3 投影变换(续) 3 透视投影变换 设投影中心在坐标原点,投影面与 Z 轴垂直,在 z = d 的 位置。点 P( x, y, z )在投影面上的投影为 P' ( xp, yp, d )。 xp x yp y d z d z x z y z y ∵ = = , o P' P(x,y,z) xp = ·d x d z ∴ yp = ·d y d P z o P' P' P z o
3.3 图元输出与输出属性 3.3.1 二维图元输出 用户定义的二维图元的窗口区到视图区的输出过程如下所示: 应用程序得到的坐标(UC)对窗口区进行裁剪(WC) 窗口区到视图区的规格化变换(NDC) 视图区的规格化坐标系到设备坐标系的变换(DC) 调用基本图元生成算法在图形设备上输出图形
3.3 图元输出与输出属性 3.3.2 输出属性及其控制 ⒈图元的输出属性 ⒉属性的组合控制
3.3 图元输出与输出属性 3.3.3 三维图元的输出 ⒈定义一个视域坐标系统VCS,为此需指定如下数据: ⑴VCS坐标原点,也称View reference point。 ⑵VCS的z轴方向,也称view plane normal。 ⑶VCS的y轴方向,又称view up vector。
z y WCS y z x x VCS o ⒉将投影物体从世界坐标变换为视域坐标。
⒊选择平行投影或透视投影进行投影变换。使得VCS的三维对象变为VCS中在yOx平面中的二维对象。⒊选择平行投影或透视投影进行投影变换。使得VCS的三维对象变为VCS中在yOx平面中的二维对象。 ⒋在VCS的yOx平面中取一个窗口,并定义相应的视区,进行标准化变换。