D01I:10.13374/i.issn1001053x.1981.04.013 计算机绘透视图时透视变形矩阵和旋转矩阵 的关系以及其他有关问题 工程图学教研室张雄飞 一、引 言 大家都知道,用计算机绘图系统画一个形体的透视图可以按下面的步骤进行: 1)先使形体透视变形: 2)再把透视变形的形体旋转: 3)最后把变形旋转后的形体投影到画面上,即: 正常化 (DJ)(T:)〔T:)〔Tg)=〔DJ')一→〔DJ") 其中〔DJ)为确定形体的点集的坐标, (DJ')为经过变换后点集的坐标: 〔T,),〔T1),〔T,)分别为透视变形矩阵、旋转矩阵和正投影矩阵。 在上述透视图形成过程中,透视变形和旋转是有固定关系的。因为,形体经透视变形变 形变换后不仅变了形,而且相当于建立了透视模型。透视变形矩阵中各元素若已选定,“相 当视点”,“相当画面”和“相当视距”就已经确定。因此,·要画透视图,就必须把这个模 型的“相当画面”旋转到和画面重合,再进行正投影,才能得到准确的透视图。 文【!是国内论述图形处理的矩阵方法面一本重要参考书,但对上述问题也没有展开讨 论。因此本文的目的就是在【的基础上进一步讨论绘透视图时,透视变形师阵和旋转矩阵 的关系及其他有关问题,并简单说明它的应用。 二、透视变形矩阵的几何意义 物体上某个点p(x,y,z,1)经透视变换后变为p'(x',y',z',h),再经正常化后变 为p"(x,y",z”,1),即 「100p 010q 〔x',y',z',h)=〔x,y,z,1) 001r =〔x,y,z,px+qy+rz+1) 0001J (x",y”,z”,1) px+qy+rz+i'px+qy+rz+l'px+qy+rz+1' 分析这个结果,可以看出: 当px+py+rz=0时:x"=x,y"=y,z”=z。这说明在pX+qy+rz=0的平面 140
计算机绘透视图时透视变形矩 阵和旋转矩 阵 的关系以及其他有关问题 工 程 图学教研 室 张 雄飞 引 告口 大家都知道 , 用计算机绘图 系统画一 个形 体的透视图可 以按下 而 的 步骤 迸行 先使形体透视变形, 再把 透视 变形的形 体旋 转, 最后把 变形旋转后 的形体投影 到画面 上 , 即 正常化 〔〕〔〕〔 〕〔 〕 〔产 〕一 一 〔, 〕 其中〔为确定形体的点集的 坐标, 尹 〕为经过 变换后点集的坐标 〕 , , 〕 , 〕分 别为透视 变形矩 阵 、 旋 转矩阵 和正 投影矩 阵 。 在 上述透视 图形 成过程 中 , 透视 变形和旋 转是有固定关 系的 。 因为 , 形体经透视 变形 变 形变换后不仅 变 了形 , 而且相 当于建立 了透视 模型 。 透视 变形矩 阵中各元 素若 已选定 , “ 相 当视点” , “ 相 当画面 ” 和 “ 相 当视 距” 就 已经确定 。 因此 , , 要 画透视 图 , 就必须 把这个模 型 的 “ 相 当画面 ” 旋 转到和 画面 重合 , 再 进行 正 投影 , 才能 得到 准确的透 视 图 。 文 ‘是 国 内论述图形处理的 矩 阵方 法面 一 本重要 参考书 , 但 对 上述 问题 也没有展 开讨 论 。 因此本文 的 目的就是在 〔‘的基 础 上进一 步讨论 绘透视 图 时 , 透视 变形 知 阵 和旋 转矩 阵 的关系及其他有关问题 , 并简单说 明它的 应 用 。 二 、 透视 变形矩 阵 的几何意义 物体上某个点 , , , 经透视 变换 舌变为 ’ ’, ’, ‘ , , 再 经正 常化后 变 为护 护 , , , 扩 , , 即 〔 尹, 产, ,, 〕 〔 , , , 〕 〔 , , , 〕 ,, 〔 ‘人 · ‘ , ·‘ , 一卜 分析这个结果 , 可 以 看出 当 时 扩 , , 了, 护 。 这 说 明在 的 平面 又 DOI:10.13374/j.issn1001-053x.1981.04.013
上,图形的形状、大小不变,因此这平面相于画而,称之为“相当画面”。 当px+qy+rz+1-→0时:x”→,y"→∞,z"→∞。这说明投影中心在原点0向这 个平面作垂线得到的垂足处,称这个垂足为“相当视点”。形体上的点达到这平面时,它和投 影中心(“相当视点”)的连线在px+by+rz+1=0的平面上,由于这平面和“相当画面 平行,所以投影到了无穷远。 当x+o时,x”+-1 。这说明变形后的形体沿原X方向的所有直线都将交·X轴于 p -处,称-1这点为X方向的“相当灭点”,同理y→四时,y"→-z→∞ 时2”},P地 !,也称-。点及-点分别为Y方向及2方向的“相当灭点”!见图1。 q (“相当画而”未画出) 1/P相当灭点 1/ 面 相当灭点 S视点 相当灭点 1 图1 三、确定旋转矩阵的角度 由(二)的分析可以清楚地看出,在把透视变形后的形体正投影到画面之前,必须旋转整 个模型,使“相当画面”和画面重合。方法如下: Na ::因为P,q,r是“相当画而”的法线ON的方 向数,所以 ON=〔p,q,r〕 N(p9. :把ON转到和y轴承合,可按下面两步进行,见图 2第一1先把ON绕Z轴转中1角,使它和YZ而 N, 重合,得ON,则 :.tg中1=p 图2 141
上 , 图形 的形 状 、 大小不 变 , 因此这 平面 相 当于画面 , 称 之为 “ 相 当画面 ” 。 当 时 “ , “ ” , ’ ” 。 这 说 明投影 中心在原点 。 向这 个平而 作垂 线得到 的垂 足处 , 称 这 个垂 足 为 “ 相 当视 点” 。 形 体上 的点达 到这 平而 时 , 它和 投 影 中心 “ 相 当视 点 ” 的 连线在 十 的 平面 上 , 由于这 平而 和 “ 相 当画 面 平行 , 所 以 投影 到 了无穷远 。 当 时 , 一处 , 称 一 , 一 这 点为 。 这 说 明 变形后 的 形 体沿原 方 向 的 所 有直 线 都 将交《轴 于 方 向的 “ 相 当 灭 点” , 同 理 , 时 , “ 一 时 ’‘ 一 点 及 一 一兰 上 ,, 点分 别为方 向 及 方 向的 “ 相 当灭 点” 。 见 图 。 “ 相 当画 而 ” 未画 出 ‘ 侧 碳 火 业 图 三 、 确 定旋转矩 阵 的角度 由 二的 分析可 以清楚地 看 出 , 在 把透视 变形 后 的 形体正投影 到 画面 之前 , 必 须 旋转 整 个模型 , 使 “ 相 当画 面 ” 和 画 而 重 合 。 方 法如 下 卜 因为 , , 是 “ 相 当画 而” 的 法线 的 方 向数 , 所 以 〔 , , 〕 转到 和 轴 币合 , 可按下面 两 步进 行, 见 图 一寸 则 绕 轴 转 小 ,角 , 使 它 和 而 小 , 尹 ·
Oniy=vp+q 其次:再把ON,绕X轴旋转中,角得ONy,则 r tg中:=√p+q2 中1,中:,就是两个旋转矩阵的角度。 四、确定视距D 由(二)的分析可以看出:由原点O到px+qy+「z+1=0这个平面的距离就是视距D。 (或者说“相当画面”到px+qy+rz+1=0这个平面的距离就是视距D。)因此 D=8 其中,n为Px+gy+rz+1=0平面的单位法向量,8为px+qy+rz+1=0平面的任意点 的向径,现取这平面的X轴截距点(-1/p,0,0),于是 D=pi -21 ptn+p。+ qj *nn)) -1 Vp44q3+r ·相当视点 1 式中的负号表示“相当视点”总在一X,-Y,一Z 这个隅中,经旋转后总在一Y轴上。 总之,透视图的变换矩阵〔T)应为 图3 100p)co8p:inp,00/10 0 0/1000 T= 0109 -sin o cop0 cos2 o sin o2 00 000 001r 0 000 0-sin o2 co82000 1 0 (00010 0000000(0001 coBop:0 sin gin 20 sin o:0 cosop:cosp2 0 (1) 00 cos p2 0 00 0 0 其中 中,=crctg-P (2) r 中:=arctgp+q (3) -1 D=√p*+g2+r (4) 公式(1)~(4)概括了画透视图的变换矩阵中p、q、「和转角、视距的关系。(注:本文讨 论中没有考虑总比例原素和平移原素的影响。) 142
石 , “ 了 址 ‘ 其次 再把绕轴 旋转 小 角得, , 则 ‘甲 ’ “ 于下压不矛 今 , 小 , 就是两个旋转矩阵 的 角度 。 四 、 确定视 距 由二 的分析可 以 看 出 由原点 到 这个平面 的距 离就是视 距 。 或者说 “ 相 当画面” 到 这个平面 的距 离就是视 距 。 因此 》 一知 。 其中 为 。平面 的 单位 法向量, 的向径 , 现取 这 平面 的轴截 距 点 一 , , , 各为 平面 的任意点 于 是 户 寸 ’ 一 二 一县里 一 二 气一一丝选 了 “ 吕 了 吕 一 “ 州卜 寸 十 一 ‘班井 一 三 二于 气 一 一 认 名 “ 吕 一 一 亿 石不而 飞不…杯 式 中的 负号表示 “ 相 当视点 ” 总在 一 , 一 , 一 这个隅中, 经旋转后 总在 一 轴上 。 总之 , 透视 图的 变换矩阵 〔〕应为 图 、‘‘ ﹄ 户 ”甘工︸ 八甘﹄︸︸﹄ ﹃︸,土 日八﹄甘工 八 呼 甲 二 一 中 ” 戈 田 甲 ‘ 甲 甲 少 日 甲 颐 甲 一 苗 甲 甲 旦 厂 ‘ 、, 、 … 八曰︸ 哪 甲 甲 一 甲 一 甲 吕甲 日 甲 甲 … … 其 中 。 一 · ,十 ‘ 一 ,不轰不 布沂箭弄 公式 概括 了画 透视 图 的 变换矩阵 中 、 、 和转 角 、 视 距 的关 系 。 注 本文讨 论 中没有考虑 总比例原 素和 平移原 素的影 响 。
五、实际应用 1)在动态化的显示中,实际上是视点不动,物体在旋转。这时,可先根据视角大小 (一般为28°左右)确定视距,把视点设定在y轴上一D处,于是形成了Y方向单向透视,即 p=r=0, q=0 然后让物体绕Z轴转中:角,再经过上述方向Y单向透透变形,再正投影,就可以到得角透视 的效果。整个变换矩阵(T)为 co8p:8inp100)0000)I1000 sin p:cosop:00 0000 (T)= 010 0 00 0000 0010 0 0 01'0001(0001) -cos 00-sin D -sin p:00 co 0 000 0000 上式中的-inp:/D,一cop:/D,·我们还可以证明就是透视原素p,q,.即 -inp1=√p*+qi sin1=q D -inp1=√p2+q2inp1=g D 2)如果让视距D逐渐变化,则矩阵 1000) 010q (T)= 0010 0001 中的q=也跟着逐渐变化,再消除物体(例如建筑物)在视角以外的部份,那么,犹如人 走进建筑物,边走边看所看到的情景,这样的动态显示从原理上讲也是不难理解的。 参考文献 〔1)《图形处理的矩阵方法》1979.4北京航空学院机械制图教研室编。 〔2)《Mathcmatical ElemInt ior Comqnter Craghios》D.F.Rogers& rJ.A,Adams。 〔3)《建筑制图》1978.9华南工学院,湖南大学等五院校《建筑制图》编写组编。 〔4)《空间解析几何引论》南开大学数学系编。 143
在 动态 化 的显示 中 , 一般为 。 左右 确定视 距 , 五 、 实 际 应 用 实际 上是视点不动 , 物 体在旋 转 。 这时 , 可 先根 据视 角大小 把视 点设定在 轴 上 一 处 , 于 是形 成了 方 向单向透视 , 即 一 一 一予子一 产 然后 让物体绕 轴 转 小 角, 再经 过 上述方向单向透透 变形, 再正投形 , 就 可 以 到得角透视 的效果 。 整个变 换矩阵 为 哪 甲 酬叫山州划 鱿 甲 日︶﹄︸ 八甘,占﹄‘ 〔〕 一 “, 甲 、 ” ‘ ” 一 帕 印 一 目 甲 一 “, 甲 。 咋思黔 上式中的 一 甲 , 一 “ 甲 , 我们还可以证 明就是 透视 原素 , , 即 … 几、、 一 一 田 甲 亿 甲 一 一 甲 侧 甲 一 如果 让视 距 逐 渐变化 , 则 矩阵 一 、沪 产、 中的 子 也耽 逐渐 变化 , 再消除物体例 如建筑物 ,在视角以外的 部份 , 那 么 , 犹如人 走进建筑物 , 边走边看所 看到 的情 景 , 这样 的 动态显示 从 原理上讲也是不 难理 解 的 。 参 考 文 献 幻 《图形处理 的 矩阵方法 》 北京航空学 院机械制图 教研室 编 。 〔〕 《 》 。 〕 《建筑 制图 》 华南 工学院 , 湖南大学等五院校 《建筑 制图 》编 写组编 。 〔们 《空 间解析几何 引论 》南开大学数学 系编 。