好文档 - 专业文书写作范文服务资料分享网站

西北工业大学计算机图形学重点汇编

天下 分享 时间: 加入收藏 我要投稿 点赞

?x'y'z'1???xy?1??0z1??0??0?00100?1000??0???x?0?1??y?z1?

②关于坐标轴对称:空间中一点关于x轴作对称变换时,则点的x坐标保持不变,

只改变y和z方向的坐标的正负号

?x'y'z'1???xy?100??0?10z1??00?1??000??1??dz1??g??0?010000100??0???x?y?z1? ?0?1??5.错切:沿x轴错切:

?x'y'z'1???xy0??0???x?dy?gzy?0?1??z1?

?例三维物体绕平行于x轴的直线旋转?角

将旋转轴平移至x轴,将物体绕旋转轴旋转?角,将旋转轴平移至最初位置 ?三维投影变换:把三维物体变为二维图形表示。投影:平行投影、透视投影 ?在平行投影中,物体的坐标位置沿平行线变换到投影平面上。

?在透视投影中,定义投影平面后的一点为投影中心,将投影中心和三维物体上的各点的连线称为投影线。投影线与投影面的交点即称为各点的投影。 ?平行投影保持物体的大小比例不变,物体各个面的精确视图可有平行投影得到,但无法给出三维物体的真实性表示。

根据平行投影与投影平面的间的夹角也可分为正平行投影与斜平行投影两类,当投影线垂直于投影平面时,得到的投影称为正平行投影;否则为斜平行投影。 ?平行投影中,物体投影大小与物体距投影面的距离无关,与人的视觉成像不符。而在透视投影中,离投影面近的物体较远的物体生成的图像大,生成真实感图形。 ?投影中心又称为视点,相当于观察者的眼睛。投影面置于视点与物体之间,将物体上的各点与视点相连所得的投影线与投影面的交点就是三维物体上相应点的透视变换结果。

?观察空间:定义了观察窗口的大小,可以利用窗口边界来定义观察空间。只有在观察空间中的物体才会在输出设备中显示,而其它的景物将被裁剪掉。 平行投影观察空间:无限长的长方体管道;透视投影观察空间:无限长的棱锥

11

?三维观察流程:

?OpenGL中的图形变换分为四类:视点变换、模型变换、投影变换、视区变换 (还有裁剪变换)这些图形变换函数都是通过矩阵操作来实现的。

?入栈函数:void glPushMatrix(void) 功能:把当前的矩阵拷贝到栈中; 出栈函数:void glPopMatrix(void) 最后压入栈的矩阵恢复为当前矩阵。 作用:保护当前矩阵现场。

?void glTranslate*(TYPE x,TYPE y,TYPE z); 该函数以平移矩阵乘当前矩阵

?void glRotate*(TYPE angle,TYPE x,TYPE y,TYPE z);该函数以旋转矩阵乘当前矩阵,其中:angle 指定旋转的角度(以度为单位)。

x,y,z 指定旋转轴向量的三个分量(该向量位于世界坐标系中)。

?视点变换也可以称为视图变换,是指改变对象观察点的位置和方向。 视图变换改变视点的位置和方向,也就是改变视觉坐标系。

旋转变换,必定可以通过对视点作相应的平移、旋转变换来达到相同的视觉效果。 ?投影变换:透视投影,正交(平行)投影

透视投影:其取景体积是一个截头锥体,在这个体积内的物体投影到锥的顶点,用glFrustum()函数定义这个截头锥体,这个取景体积可以是不对称的,计算透视投影矩阵M,并乘以当前矩阵C,使C=CM。

void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far); 该函数以透视矩阵乘当前矩阵

left, right 指定左右垂直裁剪面的坐标。bottom,top 指定底和顶水平裁剪面的坐标。near,far 指定近和远深度裁剪面的距离,两个距离一定是正的。

?视区变换:视口就是窗口中矩形绘图区。用窗口管理器在屏幕上打开一个窗口时,已经自动地把视口区设为整个窗口的大小,可以用glViewport命令设定一个较小的绘图区,利用这个命令还可以在同一窗口上同时显示多个视图,达到分屏显示的目的。

void glViewport(Glint x,Glint y,Glsize width,Glsize height); 该函数设置视口的大小。

x,y 指定视口矩形的左下角坐标(以象素为单位),缺省值为(0,0)。 width,height 分别指定视口的宽和高。

12

第五章 三维物体的表示

?曲线曲面的参数化表示:

曲线的参数化表示:空间曲线上一点P的每个坐标被表示为某个参数u的函数:

?x?x(u)??y?y(u) ?z?z(u)?p(u)??x(u)y(u)z(u)?

曲面的参数化表示:曲面可用参数u、v的矢函数 P=P(u,v)描述。曲面的范围常

?u?u?u2用两个参数的变化区间所表示的uv参数平面上的一个矩形区域?1给出

?v1?v?v2?x?x(u,v)?曲面上一点P的每个坐标被表示为参数u、v的函数:?y?y(u,v)

?z?z(u,v)?p(u,v)??x(u,v)y(u,v)z(u,v)?

?曲线曲面的基本类型:

规则曲线和规则曲面:圆、抛物线、螺旋线等曲线和球、圆柱、圆锥等曲面都很容易用数学方程式表示出来,这类曲线和曲面分别称为规则曲线和规则曲面。 自由曲线和自由曲面:曲线和曲面的形状相当自由又不规则,如飞机机翼、汽车车身、人体外形、卡通形象等,很难用数学式表示。

什么事自由曲线/曲面?一种非解析表达的曲线/曲面,属于参数曲线。

?自由曲线/曲面的生成:自由曲线和自由曲面一般通过少数分散的点生成。常用三种类型的点: 控制点:用来确定曲线和曲面的位置与形状,相应的曲线和曲面不一定经过的点。 型值点:用来确定曲线和曲面的位置与形状,而相应的曲线和曲面一定经过的点。 插值点:为提高曲线和曲面的输出精度,在型值点之间插入的一系列点。 然后根据应用要求得到最贴近这些点(即少数分散的点)的函数式描述

?插值曲线/曲面:利用数学方法构造的曲线曲面按要求通过已知的型值点,称为对这些已知型值点进行插值。所构造的曲线或曲面称为揑值曲线或曲面。当型值点较多时,构造的插值函数通过所有的型值点是相当困难的。

逼近曲线/曲面:人们往往选择一个次数较低的函数,使其在某种意义上最为接近于给定的数据点,称之为对这些数据点的逼近。所构造的曲线或曲面称为逼近曲线或曲面。

插值和逼近统称为拟合

?三次Hermite样条:Hermite插值样条是一个分段三次多项式,并在每个控制 点有给定切线。它的每个曲线段仅依赖于端点约束,可以通过调整每段曲线两端点切矢量来控制曲线的形状。

13

下图所示为在控制点pk和pk+1之间的曲线段。 rk和rk+1是在控制点pk和pk+1处相应的导数值(曲线的斜率)。

?P(0)?Pk?P'(0)?r?k Hermite曲线的边界条件是:?

P(1)?Pk?1???P'(1)?rk?1?贝塞尔曲线由一组控制点构成的特征多边形唯一的定义。

贝塞尔曲线的起点与终点和特征多边形的起点与终点重合,且多边形的第一条边和最后一条边表示了曲线在起点和终点处的切矢方向。 形状。

n+1个控制顶点的位置,则贝塞尔曲线可表示为: C(u)?i?0其中Pi构成了该曲线的特征多边形, PiBi,n是伯恩斯坦

基函数,贝塞尔曲线是控制顶点Pi关于伯恩斯坦基函数的加权和。 ?贝塞尔曲线的递推算法:Bezier的递推算法,即德卡斯特里奥算法 对于一给定参数u

?PBini,n(u)[0,1],已知控制点Pi,i=0,1,…,n,构成n条边的控制多边形。

求其在Bezier曲线上对应的点C(u)。 ①依次对控制多边形进行定比分割,分割比例为u:(1-u),得到第一级递推的中间顶点Pi1,i=0,1,2,...,n

②再对上述得到的这些中间顶点构成的控制多边形执行同样的定比分割,得到第二级递推的中间顶点Pi2,i=0,1,2,...,n。如此继续,直到n次分割得到一个 中间顶点Pin,即为所求的Bezier曲线上对应的点C(u)。

?Bezier曲线有以下缺点:

修改,修改某一控制顶点将影响整条曲线;

Bezier曲线的阶次,即n+1个控制点必将产生一

段n次的Bezier曲线。当控制顶点的数目n+1较大时,由其构成的特征多边形对曲线形状的控制也将减弱。 Bezier曲线是B样条的特例 ?以B样条基函数代替Bernstein基函数而获得的B样条曲线曲面克服了上述缺点。B样条仍采用控制点来定义曲线,曲线方程可写为:C(u)??PiBi,k(u)

i?0n 14

第六章 真实感图形的生成与处理

?要消除上述二义性,在显示三维图形物体时,就要决定物体上每条棱边在视图中的位置和它的可见性,对不可见的就必须加以抹掉或区别。这种找出并消除物体中不可见的部分的过程,称为消隐图。若消除的是物体上不可见的线段,即棱边,称为线消隐。若消除的是物体上不可见的面,就称为面消隐。隐藏面消除算法也称为可见面判别算法。

?可见面辨别算法:后向面判别,画家算法,区域细分算法

后向面判别:多面体的表面可分为内侧和外侧。对观察者而言,外侧是可见的,而内侧不可见。我们可利用表面外法线的方向性来进行判别,当某一表面的外法线与观察点和表面上任意一点之间的连线的夹角在0≤θ≤90°之间时,该表面就是可见的,否则, 当90°≤θ≤180°,为不可见,该多边形表面为后向面。 ?画家算法也称列表优先算法,需要先把屏幕置成背景色,再把根据距离观察点的远近构成的优先表逐个地取出多边形在屏幕上进行投影。先投影的线或点会被后投影的线或点所取代。直到最高优先级的多边形的图形送入了帧缓冲器以后,整幅图就画好了。需要建立深度优先表。对于复杂画面,简单的深度易出错,特别是多个面交互重叠的情形,需把有关的面分割后再进行排序。

?区域细分算法是在图像空间中实现的,基本思想:把物体投影到窗口上,然后递归地对窗口进行分割,直到窗口内的目标简单到足够可以显示为止。其中,窗口是指整个屏幕;同时,利用递归过程,每一次把矩形的窗口等分成的四个相等的小矩形也称为窗口。

D是窗口,多边形是A、B、C和E。关系:内含、包围、相交和分离。

?光照:反射光,透射光,热能转化;只有透射光和反射光能够进入人眼而产生视觉效果,并且反射光和透射光决定了物体所呈现出来的颜色。具体说来,反射光和透射光的强弱决定了物体表面的明暗程度,同时,这些光所含的不同波长的光的比例则决定了物体表面的颜色。 反射光:环境光,镜面反射,漫反射。 ?Phone模型:

E?Ee?Ed?Es?IaKa??I(d,i)Kdcos?i??I(s,i)Kscosn?ii?1i?1nn环境光:

Ee?IaKa Ee是物体表面上的一点由于受到环境光照明而反射

出来的光能,称为环境光反射强度。Ia为物体在漫射照明时所受到的光能强度,称为环境光的强度。Ka为环境光的漫反射系数,也就是物体表面对环境光的反射系数,0≤Ka≤1 镜面反射:Es?IsKscosn?其中

Es为镜面反射光在观察方向上的光强;Is

为点光源的强度;Φ为视点方向与镜面反射方向的夹角;Ks为物体表面的反射率,也称为镜面反射系数;n是一个与物体表面光滑度有关的常数,用以模拟各

15

西北工业大学计算机图形学重点汇编

?x'y'z'1???xy?1??0z1??0??0?00100?1000??0???x?0?1??y?z1?②关于坐标轴对称:空间中一点关于x轴作对称变换时,则点的x坐标保持不变,只改变y和z方向的坐标的正负号?x'y'z'1???xy?100??0?10z1??00?1??000??1??dz1??g??0?010000100??0???x?
推荐度:
点击下载文档文档为doc格式
15rmr242za0fvqu4yw276b8ve00zl600v0u
领取福利

微信扫码领取福利

微信扫码分享