第三章 计算机图形处理技术
第一节 图形变换 一、窗口—视区变换 1.窗口:用户在所需要的图形部分区域选定一个观察框。 窗口区:用户指定的任一区域(W) 第一节 图形变换 一、窗口—视区变换 1.窗口:用户在所需要的图形部分区域选定一个观察框。 窗口区:用户指定的任一区域(W) a 窗口区W小于或等于用户域WD(用户域:程序员用来定义草图的整个自然空间(WD);人们所要描述的图形均在用户域中定义; 用户域是一个实数域,理论上是连续无限的) b 小于用户域的窗口区W叫做用户域的子域。 c 窗口可以有多种类型,矩形窗口、圆形窗口、多边形窗口等等 d 窗口可以嵌套,即在第一层窗口中可再定义第二层窗口,在第I层窗口中可再定义第I+1层窗口等等。
2. 视图区:任何小于或等于屏幕域的区域视区;是在图形设备上定义的矩形区域,用于输出所要显示的图形和文字。 (屏幕域(DC):设备输出图形的最大区域,是有限的整数域。) a 视图区用设备坐标定义在屏幕域中 b 窗口区显示在视图区,需做窗口区到视图区的坐标转换。 c 视图区可以有多种类型:圆形、矩形、多边形等。 d 视图区也可以嵌套。
3、窗口与视区的变换 简化为: 1) 当ac时,即x 方向的变化与y方向的变化不同时,视图中的图形会有伸缩变化,图形变形。 2) 当a=c=1,b=d=0则Xs=Xw,Ys=Yw,图形完全相同。 思考:前面讲的窗口→视图变换时,假设窗口的边和坐标轴平行,如果窗口的边不和坐标轴平行呢?
A. 先让窗口FGHI转-α角,使它和FG'H'I'重合。 B. 用(1)式进行计算。
二、二维图形的几何变换 图形变换是计算机图形学基础内容之一。 几何变换,投影变换,视窗变换 线性变换,属性不变,拓扑关系不变。 作用: 把用户坐标系与设备坐标系联系起来; 可由简单图形生成复杂图形; 可用二维图形表示三维形体; 动态显示。
1、工程图形的齐次坐标矩阵表示 所谓齐次坐标表示法就是由n+1维向量表示一个n维向量。如n维向量(P1,P2, … ,Pn)表示为(hP1,hP2,hPn,h),其中h称为哑坐标。 1、h可以取不同的值,所以同一点的齐次坐标不是唯一的。 如普通坐标系下的点(2,3)变换为齐次坐标可以是(1,1.5,0.5)(4,6,2)(6,9,3)等等。 2、 普通坐标与齐次坐标的关系为“一对多” 由普通坐标h→齐次坐标 由齐次坐标÷h→普通坐标 3、 当h=1时产生的齐次坐标称为“规格化坐标”,因为前n个坐标就是普通坐标系下的n维坐标。
(x,y)点对应的齐次坐标为 (x,y)点对应的齐次坐标为三维空间的一条直线
齐次坐标的作用 1. 将各种变换用阶数统一的矩阵来表示。提供了用矩阵运算把二维、三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法。 2. 便于表示无穷远点。 例如:(x h, y h, h),令h等于0 3. 齐次坐标变换矩阵形式把直线变换成直线段,平面变换成平面,多边形变换成多边形,多面体变换成多面体。 4. 变换具有统一表示形式的优点 便于变换合成 便于硬件实现
2、二维图形的基本几何变换 二维图形的显示流程图
图形变换:对图形的几何信息经过几何变换后产生新的图形。 图形变换的两种形式: 1.图形不变,坐标系改变; 2.图形改变,坐标系不变。 我们所讨论的是针对坐标系的改变而讲的。
1、二维基本变换-比例变换 以坐标原点为放缩参照点 当a=d=1时:恒等比例变换 当a=d>1时:沿x,y方向等比例放大。
2、二维基本变换-对称变换 当b=c=0,a=-1,d=1时,(x* y* 1)=(-x y 1):与y轴对称的反射变换。 当b=d=0,a=1,d=-1时,(x* y* 1)=( x -y 1):与x轴对称的反射变换。 当b=c=0,a=d=-1时,(x* y* 1)=(-x -y 1):与原点对称的反射变换。 当b=c=1,a=d=0时,(x* y* 1)=(y x 1):与y=x对称的反射变换。 当b=c=-1,a=d=0时,(x* y* 1)=(-y -x 1):与y=-x对称的反射变换。
3、二维基本变换-旋转变换 注意;θ是逆时针旋转角度。 θ ρ α (x,y) (x´,y´)
4、二维基本变换-错切变换 2)当b=0时, (x* y* 1)=(x dx+y 1)图形的x坐标不变; 当d>0:图形沿+y方向作错切位移。ABCD→ A1B1C1D1 当d<0:图形沿-y方向作错切位移。ABCD→ A2B2C2D2
二维基本变换-错切变换 2)当b=0时, (x* y* 1)=(x dx+y 1)图形的x坐标不变; 当d>0:图形沿+y方向作错切位移。ABCD→ A1B1C1D1 当d<0:图形沿-y方向作错切位移。ABCD→ A2B2C2D2
二维基本变换-错切变换 3) 当b0且d0时, (x* y* 1)=(x+by dx+y 1) :图形沿x,y两个方向作错切位移。 ∴错切变换引起图形角度关系的改变,甚至导致图形发生变形。
5、二维基本变换-平移变换 平移变换 平移变换只改变图形的位置,不改变图形的大小和形状
3、复合变换 复合变换又称级联变换,指对图形做一次以上的几何变换。 注意:任何一个线性变换都可以分解为上述几类变换。
例1:复合平移 求点P(x,y)经第一次平移变换(Tx1,Ty1),第二次平移变换(Tx2,Ty2)后的坐标P*(x*, y*) 解:设点P(x,y,1)经第一次平移变换后的坐标为P(x y 1),则 经第二次平移变换后的坐标为P*(x* y* 1) ∴变换矩阵为Tt=Tt1•Tt2
例2:多种复合组合 y x (x,y) y x (x´,y´) y x (x´´,y´´) Tx 例:对一线段先放大2倍(即Sx=Sy=2),再平移Tx=10,Ty=0。 解:设点(x,y)为线段上的任意一点, 点(x´,y´)为点(x,y)放大后的坐标则: 设点(x´´,y´´)为点(x´,y´)经平移后的坐标为: [x´´,y´´,1]= [x´,y´,1]T2(10,0) 则: [x´´,y´´,1]= [x´,y´,1]T2(10,0)=[x,y,1]S2(2,2)T2(10,0) 令:M=S2(2,2)T2(10,0) ,则M即为组合变换 y x (x,y) y x (x´,y´) y x (x´´,y´´) Tx
三、三维图形的几何变换 三维其次坐标 (x,y,z)点对应的齐次坐标为 标准齐次坐标(x,y,z,1) 右手坐标系
三维几何变换 变换矩阵 比例变换 平移变换
三维变换矩阵-对称变换 在二维变换下,对称变换是以线和点为基准,在三维变换下,对称变换则是以面、线、点为基准的。 对称于XOY平面 [x' y' z' 1] = [x y -z 1]=[x y z 1] 对称于YOZ平面 [x' y' z' 1] = [-x y z 1]=[x y z 1] 对称于XOZ平面 [x' y' z' 1] = [x -y z 1]=[x y z 1]
三维变换矩阵-旋转变换 绕X轴变换 空间上的立体绕X轴旋转时,立体上各点的X坐标不变,只是Y、Z坐标发生相应的变化。 x' = x y' = ρcos(α+θ) = y*cosθ- z*sinθ z' = ρsin(α+θ) = y*sinθ+z*cosθ Z Z Z (y' z') (y' z') θ (y,z) (y,z) θ α O X Y O Y
三维变换矩阵-旋转变换 矩阵表示为: 遵循右手法则,即若θ>0,大拇指指向轴的方向,其它手指指的方向为旋转方向。
三维变换矩阵-旋转变换 绕Y轴旋转 此时,Y坐标不变,X,Z坐标相应变化。 x' = ρsin(α+θ) = x*cosθ + z*sinθ z' = ρcos(α+θ) = z*cosθ- x*sinθ Z Z Z (x,z) α θ O X Y O X (x' z')
三维变换矩阵-旋转变换 矩阵表示为
三维变换矩阵-旋转变换 绕Z轴旋转 此时,Z坐标不变,X,Y坐标相应变化。 x' = ρcos(α+θ) = x*cosθ - y*sinθ y' = ρsin (α+θ) = x*sinθ+ y*cosθ z' = z Z Y (x,y) (x' y') θ α O X Y X O
三维变换矩阵-旋转变换 矩阵表示为:
第二节 计算机辅助绘图 一、交互式绘图 优点:直观、灵活 缺点:速度慢,绘图工作量大、效率低。 第二节 计算机辅助绘图 一、交互式绘图 优点:直观、灵活 缺点:速度慢,绘图工作量大、效率低。 绘图步骤:设置绘图环境或套用模板;交互式绘图、打印输出。 二、程序参数化绘图 几何参数和定位参数。 缺点:要求高,编程工作量大。
三、尺寸驱动参数化绘图 基本思想:以草图形式快速绘制图形,进行尺寸标注,通过程序准确产生图形。 优点:灵活、高效。 参数化设计(Parametric)(也叫尺寸驱动Dimension-Driven)是利用图形支撑软件提供的尺寸驱动方式进行绘图(又称参数化绘图),它不仅可使CAD系统具有交互式绘图功能,还具有自动绘图的功能。 基本思想:以草图形式快速绘制图形,进行尺寸标注,通过程序准确产生图形。 优点:灵活、高效。 比较先进的图形支撑软件都提供这种功能。尺寸驱动一般是建立在变量几何原理上的,设计者可以采用“Hand Free”方式随手勾画出零件的拓扑结构,然后再给拓扑结构添加几何和尺寸约束,系统会自动将拓扑结构按照给定的约束转换成零件的几何形状和几何大小。这种方式大大提高了绘图效率,它也支持快速的概念设计。
1、尺寸驱动参数化绘图原理 2、尺寸驱动参数化绘图软件的主要功能 一般是由尺寸驱动参数化软件模块在非参数化图形基础上引入了约束机制实现的。 几何约束和尺寸约束的定义 2、尺寸驱动参数化绘图软件的主要功能 a)草图绘制与整理 b)参数化尺寸驱动
四、参数化图库的使用和建立 利用绘图软件自身带有的标准图形库和建立用户自己的图形库。 建立图形库的几种途径: 五、工程图的自动生成
三、计算机辅助绘图 计算机辅助绘图是CAD中计算机应用最成熟的领域。计算机辅助绘制二维图形常用的方法有四种: 第一种是直接利用图形支撑软件提供的各种功能,利用人机交互方式将图形一笔一笔地画出来。比较老式的CAD系统都是采用这种方式,主要缺点是速度慢,绘图工作量大; 第二种是利用图形支撑软件提供的尺寸驱动方式进行绘图(又称参数化绘图),比较先进的图形支撑软件都提供这种功能。这种方式大大提高了绘图效率,它也支持快速的概念设计; 第三种是利用图形支撑软件提供的二次开发工具,将一些常用的图素参数化,并将这些图素存在图库中。绘图时,根据需要从图库中按菜单调用有关图素,并将之拼装成有关的零件图形。由于图素已经参数化,可以方便地修改尺寸。这种利用参数化图素拼装成零件的绘图方法可以极大地提高绘图效率。 第四种方法是采用三维造型系统完成零件的三维立体模型,然后采用投影和剖切方式由三维模型生成二维图形,最后再对二维图形进行必要的修改和补充并标注尺寸、公差和其它技术要求。目前比较先进的CAD系统都具有这种功能。这是最为理想的绘图方法。这种绘图方式一般均可提供相关修改功能。在计算机辅助绘图系统中,要特别重视尺寸、公差和其它技术要求的标注问题,标注不仅繁琐、工作量大,而且容易出错(漏标、错标、重复标)。据统计,绘图工作量的40-60%是各种标注。所以,计算机辅助绘图的研究和应用重点应放在标注上。
第三节 曲线和曲面 曲面造型是计算机图形学和计算机辅助几何设计(Computer Aided Geometric Design)的一项重要内容,也是CAD/CAM作业中的一项重要的技术基础。 主要研究在计算机图象系统的环境下对机械设计与制造中常常遇到各种形状复杂的外形表面(曲面)的表示、设计、显示和分析。它肇源于飞机、船舶的外形放样工艺,由Coons、Bezier等大师于六十年代奠定理论基础。经三十多年发展,现在它已经形成了以Bezier和B样条方法为代表的参数化特征设计和隐式代数曲面表示这两类方法为主体,以插值(Interpolation) 、拟合(Fitting) 、逼近(Approximation)这三种手段为骨架的几何理论体系。 介绍Bezier曲线曲面、B样条曲线曲面和NURBS曲线曲面的构造描述方法。
一、曲面曲线的参数表示 显式表示、隐式表示、参数表示 1、曲线曲面的数学表示形式 2、参数曲线定义及其切矢量、法矢量和 曲率 3、曲线段间连续性定义 参数连续性的判断标准:参数连续和几何连续 4、参数曲面的定义
二、Bzier曲线曲面 由于几何外形设计的要求越来越高,传统的曲线曲面表示方法,已不能满足用户的需求。1962年,法国雷诺汽车公司的P.E.Bezier构造了一种以逼近为基础的参数曲线和曲面的设计方法,并用这种方法完成了一种称为UNISURF的曲线和曲面设计系统,1972年,该系统被投入了应用。Bezier方法将函数逼近同几何表示结合起来,使得设计师在计算机上就象使用作图工具一样得心应手。 1、Bezier曲线的定义和性质 定义: 给定空间n+1个点的位置矢量Pi(i=0,1,2,…,n),则Bezier参数曲线上各点坐标的插值公式是:
2、常见的几种Bezier曲线 1)一次Bezier曲线 2)二次Bezier曲线 3)三次Bezier曲线 如下图三次Bezier曲线所示。
3、Bezier曲线的几何特性 4、Bezier曲线的拼接 (1)端点性质 (2)凸包性 (3)几何不变性 (4)全局控制性
5、Bezier曲面 基于Bezier曲线的讨论,我们可以方便地可以给出Bezier曲面的定义和性质,Bezier曲线的一些算法也可以很容易扩展到Bezier曲面的情况。 1.定义 在一般实际应用中,n,m不大于4。
2.性质 除变差减小性质外,Bezier曲线的其它性质可推广到Bezier曲面: (1)Bezier曲面特征网格的四个角点正好是Bezier曲面的四个角点,即 P(0,0)=P00,P(1,0)=Pm0,P(0,1)=P0n,P(1,1)=Pmn。 (2)Bezier曲面特征网格最外一圈顶点定义Bezier曲面的四条边界;Bezier曲面边界的跨界切矢只与定义该边界的顶点及相邻一排顶点有关,且P00P10P01、P0nP1nP0,n-1、PmnPm,n-1Pm-1,n和Pm0Pm-1,0Pm1(下图打上斜线的三角形);其跨界二阶导矢只与定义该边界的顶点及相邻两排顶点有关。 (3)几何不变性。 (4)对称性。 (5)凸包性。
图 双三次Bezier曲面及边界信息
三、B样条曲线与曲面 以Bernstein基函数构造的Bezier曲线或曲面有许多优越性,但有两点不足:其一是Bezier曲线或曲面不能作局部修改;其二是Bezier曲线或曲面的拼接比较复杂。1972 年,Gordon等人提出了B样条方法,在保留Bezier方法全部优点的同时,克服了Bezier方法的弱点。 1.B样条曲线的定义 与Bezier曲线得定义方法类似,B样条曲线方程定义为:
其中,Pi(i=0,1,. ,n)是控制多边形的顶点,Ni,k(t)(i=0,1, 其中,Pi(i=0,1,...,n)是控制多边形的顶点,Ni,k(t)(i=0,1,...,n)称为k阶(k-1次)B样条基函数,其中每一个称为B样条,它是一个称为节点矢量,即非 (k-1次)多项式样条。 书中该递推公式表明:欲确定第i个k阶B样条Ni,k(u),需要用到ui,ui+1,...,ui+K共k+1个节点,称区间[ui,ui+k]为Ni,k(u)的支承区间。曲线方程中,n+1个控制顶点Pi(i=0,1,...,n),要用到n+1个k阶B样条Ni,k(u)。它们支撑区间的并集定义了这一组B样条基的节点矢量U=[t0,t1,...,tn+k]。
2、B样条曲线的节点矢量和定义域 3、均匀的B样条曲线 1)一次B样条曲线 2)二次B样条曲线 3)三次B样条曲线 几何特征; 4、B样条曲线的几何性质 1)局部性 2)连续性 3)几何不变性
4)凸包性 5)造型的灵活性 6)变差缩减性 设平面内n+1个控制顶点P0,P1,...,Pn构成B样条曲线P(t)的特征多边形。在该平面内的任意一条直线与P(t)的交点个数不多于该直线和特征多边形的交点个数。 7)直线保持性 控制多边形退化为一条直线时,曲线也退化为一条直线。 8)变差缩减性
5、B样条曲线控制顶点的反算 6、 B样条曲面
四、NURBS曲线曲面 B样条方法在表示与设计自由型曲线、曲面形状时显示了强大的威力,然而在表示与设计初等曲线、曲面时时却遇到了麻烦。因为B样条曲线(包括其特例的Bezier曲线)都不能精确表示出抛物线外的二次曲线,B样条曲面(包括其特例的Bezier曲面)都不能精确表示出抛物面外的二次曲面,而只能给出近似的表示。提出NURBS方法,即非均匀有理B样条方法,主要是为了找到与描述自由型曲线、曲面的B样条方法既相统一,又能精确表示二次曲线弧与二次曲面的数学方法。
1、NURBS曲线的定义 NURBS曲线是由分段有理B样条多项式基函数定义的:
其中,Ri,k(t)(i=0,1,…,n)称为k阶有理基函数;Ni,k(t)是k阶B样条基函数;Pi(i=0,1,…,n)是特征多边形控制顶点位置矢量;wi是与Pi对应的权因子,首末权因子w0,wn>0,其余wi≥0,以防止分母为零及保留凸包性质、曲线不因权因子而退化为一点;节点矢量为T=[t0,t1,…,ti,…,tn+k],节点个数是m=n+k+1(n为控制项的点数,k为B样条基函数的阶数)。 2、NURBS曲面的定义
3、NURBS方法的主要优点: (1)既为标准的解析形状(即前面提到的初等曲线曲面),又为自由型曲线曲面的精确表示与设计提供了一个公共的数学形式。 (2)可修改控制顶点和权因子,为各种形状设计提供了充分的灵活性。 (3)与B样条方法一样,具有明显的几何解释和强有力的几何配套技术(包括节点插入、细分、升阶等)。 (4)对几何变换和投影变换具有不变性。 (5)非有理B样条、有理与非有理Bezier方法可以处理为它的特例。
不过,目前在应用NURBS方法中,还有一些难以解决的问题: (2)权因子选择不当会引起畸变。 (3)对搭接、重叠形状的处理很麻烦。 (4)反求曲线、曲面上点参数值的算法不稳定。