计算机图形学计算机图形学中国科学技术大学数学系邓建松邓建松dengjs@ustceducndengjs@ustc.edu.cn第四章几何对象与变换几何对象与变换第四章之第一节几何几何基本内容z介绍几何要素•标量•标量•向量•点•点z给出这些要素间的与坐标无关的数学运算z定义基本的几何体•线段•多边形图形学中的数学z向量空间与仿射空间点向量齐次坐标•点向量齐次坐标•仿射运算z变换•矩阵表示矩阵表示•变换矩阵的确定坐标系三维坐标系三维坐标系二维坐标系三维坐标系(右手系)三维坐标系(左手系)基本几何要素z几何研究n维空间中对象之间的关系•在计算机图形学中,我们对三维空间中的对象感兴趣•在计算机图形学中,我们对三维空间中的对象感兴趣z希望得到一个几何形状的最小集合,根据这个集合可以建立起更复杂的对象集合可以建立起更复杂的对象z需要三个几何要素标量•标量•向量•点•点与坐标无关的几何z在初等几何的学习中,主要应用的是直角坐标系系•点在空间中的位置是p=(x,y,z)•通过对这些坐标进行代数操作导出结果z这种方法不是基于物理的•从物理的角度来讲,点的存在性是与坐标系的具体位置无关的无关的•绝大多数几何结果是不依赖于坐标系的•欧氏几何:两个三角形全等是指它们有两个对应边和夹•欧氏几何:两个三角形全等是指它们有两个对应边和夹角相等标量z在几何中需要三个基本元素标量、向量、点•标量、向量、点z标量可以定义为集合中的成员,集合中具标量可以定义为集合中的成员,集合中具有两种运算(加法和乘法),运算遵从一些基本的公理(结合律、交换律、逆)基本的公理(结合律、交换律、逆)z例:实数或复数全体,通常的加法与乘法标量自身没有几何属性z标量自身没有几何属性为什么需要向量?(4,6)中的问题:圆心?CAD中的问题:给定三个点,那么过这给定三个点,那么过这三点的唯一圆的圆心在哪里?(22)(5,3)哪里?不使用向量分析工具可以给出答案(2,2)以给出答案答案z设顶点为Vi=(xi,yi),i=0,1,2.并且三角形为逆时针方向。定义Xi=xi-x0Yi=yi–y0方向。定义Xixix0,Yiyiy0z三角形的面积为221121YXYXA=z外心(x,y)和半径为22)(41220121020LYLYAxx−+=)(414210222010LXLXAyyA−+=•Lij表示Vi和Vj的距离)4/()(122010ALLLr=为什么需要向量?场景:树与照相机照相机需要在视平面上形成一幅图像表示这棵树。视平面上哪些点需要被激视平面上哪些点需要被激活?透视投影需要利用向量来构造视平面为什么需要向量?北斗七星的当前位置及移动方向北斗七星的当前位置及移动方向箭头末尾的位置表示五万年后各星的位置向量分析z三种几何要素:标量、向量、点所基于空间:z所基于空间:•向量空间(即线性空间)向量空间(即线性空间)•仿射空间:齐次坐标空间向量z物理定义:向量是具有如下两条性质的量•方向方向•长度:|v|z例:例:•力•速度•有向线段•这也是图形学中最重要的例子•可以对应到其它类型上v•可以对应到其它类型上z用小写字母表示向量运算z每个向量都有逆•同样长度但是指向相反的方向同样长度但是指向相反的方向z每个向量都可以与标量相乘z有一个零向量•零长度,方向不定z两个向量的和为向量•三角形法则vw•三角形法则uv-vαvv=u+w线性空间z处理向量的数学系统运算z运算•标量乘法:u=αv标量乘法:•向量加法:w=u+vz在向量空间中,表达式v=u+2w3r有z在向量空间中,表达式v=u+2w−3r有意义向量没有位置z下述向量是相等的•因为它们具有相同的方向与长度•因为它们具有相同的方向与长度对几何而言只有向量空间是不够的z对几何而言只有向量空间是不够的•还需要点点z空间中的位置•用大写字母表示用大写字母表示z点与向量之间可进行的运算•点与点相减得到一个向量点与点相减得到一个向量•等价地,点与向量相加得到新点Pvv=P−QP=v+QQQ仿射空间z点加上向量构造的空间z运算:z运算:•向量与向量的加法Æ向量•标量与向量的乘法Æ向量标量与向量的乘法Æ向量•点与向量的加法Æ点•标量与标量的运算Æ标量•上述运算均是与坐标无关的z对于任意点,定义•1⋅P=P•0⋅P=0(零向量)向量与点的线性组合z给定n个向量v1,v2,…,vn,以及n个标量α1,α2α则由归纳法可以证明α2,…,αn,则由归纳法可以证明v=α1v1+α2v2+…+αnvn也是向量,称为这组向量的线性组合也是向量,称为这组向量的线性组合z给定n个点P1,P2,…,Pn,以及n个标量α1,α2,…,αn,则则P=α1P1+α2P2+…+αnPn是什么?是什么?•所给的定义需要与坐标无关点的线性组合z固定坐标系,取定其中的两点,那么P1+P是什么?P2是什么?•当P1为原点时,P1+P2等于P2•当P1与P2关于原点对称时,P1+P2为原点•所以P1+P2的位置与坐标系有关所以12的位置与坐标系有关z组合系数不能是任意数点的特殊线性组合z由归纳法,从“点−点=向量”和“标量⋅向量=向量”可知当组合系数和α1+α2+…+αn=量=向量”可知当组合系数和12n0时,点的线性组合为向量z½P1+½P2=P1+½(P2−P1)=点+向量=点•实际上,½P1+½P2表示两点的中点,这是与坐标无关的定义z当α1+α2++α=1时,点的线性组合为点,z当α1+α2+…+αn1时,点的线性组合为点,称为给定点的仿射组合z除此之外,其它形式的线性组合没有与坐标无除此之外,其它形式的线性组合没有与坐标无关的意义直线z考虑具有下述形式的所有点•P(α)=P0+αd•即所有过P0点,与P0连线平行于向量d的点P(α)dP0d参数形式z上述定义直线的形式称为参数形式•比其它形式更一般和稳定•比其它形式更一般和稳定•可以推广到曲线和曲面二维形式z二维形式•显式:y=mx+h•隐式:ax+by+c=0•隐式:ax+by+c=0•参数形式:x(α)=x0+(1−α)x1()0()1y(α)=y0+(1−α)y1射线与线段z如果限定α0,那么P(α)就是从P0出发,方向为d的射线方向为d的射线z如果采用两点定义向量d,那么P()P+(PP)(1)P+PP(α)=P0+α(P1–P0)=(1–α)P0+αP1z当0≤α≤1,那么就会得到连接与两点的线段P(α)α=1到连接P0与P1两点的线段P1P(α)α=1dP00α=0两点线性插值z给定两点A,B,那么它们的仿射组合P()(1)A+BP(t)=(1–t)A+tB就定义了过这两点的一条直线z线性插值在艺术和计算机动画有许多有趣的应用的应用•关键帧多边形的变形z给定两个有同样数目顶点的折线,那么利用线性插值可以给出从第一个折线到第二个折线的性插值可以给出从第一个折线到第二个折线的光滑过渡男人Æ女人名人脸外插外插线性插值ElizabathTaylorJohnF.Kennedy凸体z一个对象为凸的当且仅当在对象中任何两点的连接线段也在该对象内连接线段也在该对象内凸非凸仿射凸组合z考虑“和”式PP+P++PP=α1P1+α2P2+…+αnPnz当α1+α2+…+αn=1时上述和式有意义,当12n时上述和式有意义,此时结果就称为点P1,P2,…,Pn的仿射和z另外,如果α≥0,那么得到PPP的z另外,如果αi≥0,那么得到P1,P2,…,Pn的凸包(convexhull)凸包z最小的包含P1,P2,…,Pn的凸体可以用“收缩包装”的方式得到z可以用“收缩包装”的方式得到曲线与曲面z曲线是形式为P(α)的单参数定义的几何体,其参数定义的几何体,其中的函数为非线性曲面是由形式为P(β)z曲面是由形式为P(α,β)的两个参数定义的几何体体•线性函数对应于平面和多边形边形平面z平面是由一个点与两个向量或者三个点确定的定的Su+vvu+vu+vvu+vvRuP(α,β)=R+αu+βvuP(α,β)=R+α(Q–R)+β(S–Q)RRQ(α,β)αuβvP(α,β)Rα(QR)β(SQ)三角形RP与Q的凸组合S(α)与R的凸组合T(α,β)P与Q的凸组合PQPS(α)当0≤β≤1时定义在三角形内的点当0≤α,β≤1时定义在三角形内的点向量的内外积z内积:u⋅v=|u||v|cosθ,θ为两个向量的夹角角•u⋅v=0⇔u⊥vz外积:u×v为向量,其长度等于|u||v|sinθ,方向垂直于u,v所在的平面,并且保证uv方向垂直于u,v所在的平面,并且保证u,v,u×v成为右手系,其中θ为两个向量的夹角。角。•u×v=0⇔u//v法向量z每个平面都有一个垂直于自身的向量nn直于自身的向量nz在平面的点与二向量形式n形式P(α,β)=R+αu+βv中,可以应用向量的v中,可以应用向量的外积得到n=u×vvn=u×vPu