绘制三维图形的装置的制作方法

文档序号:6361706阅读:334来源:国知局
专利名称:绘制三维图形的装置的制作方法
技术领域
本发明涉及用绘制参数图形的计算机设备。
第二类是对第一类的改进,编码时不但记录三角形或平面多边形面片的信息而且记录原来的参数曲面的有关控制信息,在精度要求高的时候重新生成离散度更高更多的面片绘制输出。在精度要求不高,速度要求高时仍以原来较少的面片绘制。改进后可以同时满足精度和速度的要求,但信息量更大。
第三类方法是以两个参数的方程形式描述曲面,平面作为特殊的曲面亦写成两个参数的方程形式,方程中参数的次数可以是二次或更高次数的,其一般形式为[x=f1(u,v),y=f2(u,v),z=f3(u,v)],x∈(0,1),y∈(0,1),z∈(0,1),上述方程描述了构成一个参数曲面的点的全集。这个参数曲面可以是经过了任意裁剪,包括有一个或多个孔洞且分布有多个不连续的有效子集的情形。将其边界视作以U、V为轴的二维平面内的曲线或直线,这些曲线进一步离散为直线集合。该二维点集和三维点集存在一一对应关系,同时在二维平面内原参数曲面的边界和孔洞的边界是该面上的外环和内环,内外环之间是有效区域。由于三角形总是平面,所以,对以U、V为轴的二维平面三角形剖分,然后代入函数关系式求得这些三角形的顶点的三维坐标,即完成了对曲面的三角形剖分。在设计编码阶段只记录参数曲面的有关控制信息,不进行离散成三角形或平面多边形面片的工作,绘制阶段根据精度要求先平面内自动生成三角形面片,然后将三角形映射到三维空间,再输出绘制成三维效果图形。此法的优点是绘制的精度可根据需要调节,编码后生成的信息量小,但绘制阶段计算工作量变大,绘制的速度相对较慢。
目前,在剖分生成平面面片的计算中,由于面上可能有一个或多个孔洞,同时还可能有一个或多个不连续的区域,需要计算判断何者为内环,内环在何外环之中,反复多次计算才能弄清它们之间的逻辑关系,否则不能进行剖分计算。既便在设计时就已弄清,编码时也要增加额外的信息量。面片剖分计算目前多采用前沿生成法结合Delaunary三角化方法生成三角形面片(刘春太,杨晓东,陈静波,申长雨。任意平面域渐变三角形网格的自动划分。计算机辅助设计与图形学学报,1999,11(4)293-295),其步骤为1将边界离散为直线段的集合;2排列直线段及其端点形成边线表和顶点表并建立候选点表;3从边线表中取线段AB,从顶点表中寻找能与AB形成有效三角形的顶点Pi,若Pi符合要求,Pi进入候选点表;4在区域内部生成符合要求的点D,点D进入候选点表;5从候选点表中选一点C,使其与AB组成的三角形最佳;6判断更新前沿边线表,判断C类型更新顶点表;7判断边线表是否为空,若是,结束循环;否则,循环执行步骤1-6。
本发明包括用于输入信息的输入装置、用于求解面的方程的方程系数求解器、用于检测并使环及其边满足剖分要求的环边整合装置、用于将环的边的两个端点的u值之差和v值之差与设定值进行比较以判定边是否符合精度要求的边比较器、用于在曲面的边界上插值使曲面边界满足精度要求的边插值器、用于将面的对角点的u、v坐标值之差的绝对值和面的环数与设定值进行比较的面比较器、用于判断面片是否为背影面,将非背影面中的边线输出绘制的线框输出装置、用平行于u轴及v轴的剖分线剖分面F,根据边线与剖分线求交计算的结果,将环、边线、剖分线上的线段分检归并入F左、F右面片的剖分器、用于从已完成剖分符合要求的面片M中分检出三角形的三角形分检器和用于将分检出的三角形输出到图形适配器的三角形输出装置,其特征在于所述绘制三维图形的装置还包括当图形处理器接受到计算机主机发出的指令时,处理器按照已经设定的上述各装置的首地址顺序地启动各装置,用于输入信息的输入装置从计算机主存的相应地址读入要处理的面的信息;方程系数求解器工作求出面的方程的系数;环边整合装置检测环及其边是否满足剖分要求,如不满足,对其整合使其满足要求;边比较器逐一取满足要求的环,将其引用的边存储在存储器的地址表D中,从D中循环取边与设定值比较,每取一个边地址表D减1,如满足要求存入存储器的地址表E中,如不满足要求,边插值器工作,插值后生成的两个边存入存储器的地址表D中,地址表D加2,当地址表D为空将该环引用的边更换为地址表E中的边,取新环前将地址表E置空,当所有环及其边均已被处理,该面及其环和角点的u、v坐标作为第一个待剖分面片存储在存储器的地址表A中;面比较器从A中逐一取面片与设定值比较,先进A的先取,后进的后取,直到A为空,如面片满足要求将其在地址表A中的地址存入存储器的地址表B中,如不满足要求,剖分器工作,剖分后生成的两个面片存入存储器的地址表A中;当存储器的地址表A为空时,如用户需要绘制线框图,线框输出装置工作直到B中所有面片都已被处理,如用户不需要绘制线框图,三角形分检器工作直到数组B中所有面片都已被处理,检出的三角形存入存储器的地址表C中;三角形输出装置工作直到C中所有三角形都已被输出到图形适配器。
本发明还在于检测并使环及其边满足剖分要求的环边整合装置也可以放在三位形体的造型编码阶段进行,从而节省绘制阶段的计算工作量。
本发明还在于边插值器在边界上插点分有邻面和无邻面两种情况,有邻面时试算至两个面内的插值点的点距小于系统容差,无邻面时在本面内采用抛物线法插值。
剖分器剖分时根据边线与剖分线求交的结果将环、边线、剖分线的线段分检归并入两个面片,当面片中不含未被剖分的环及u向v向的间隔满足要求时不再剖分。
剖分器剖分时剖分线上的线段是将交点排序后,根据左右标记按奇偶点号间隔分检归并入两个面片的。
剖分器剖分时b2类边线与b2类边线的交点的三维坐标值以该点的u、v值代入曲面方程求得;b2类边线与b1类边线的交点的三维坐标值按交点到b1边线的两个端点的二维坐标下的点距比在三维坐标系中插值求得。
线框输出装置绘制线框图时,不从面片M中分检出三角形,当判断出面片M为非背影面时,直接将面片M边表中的边线输出绘制成线框图。
三角形分检器是从面片M的边表中查找出两个连接在同一顶点的边线ab、ac,通过判断bc边是否与其它边相交、完全重合、bc边的中点在多边形内部来分检出三角形的。
本发明的有益效果是可以凭借较少的概要抽象的编码信息描述出曲面的参数方程及曲面的边界特征,通过将曲面的边界离散成直线进而将曲面的有效区域剖分成三角形的集合,再将这些三角形交由通常的图形适配器进行消隐、裁剪处理后可绘制出具有三维效果的图形。本装置而且可以在使用中根据需要调节绘制的精度,以及在不同的速度要求下进行不同形式的绘制输出。从而满足用户在计算速度快、复原三维形体的需要的信息量小、绘制精度高等方面的需求。利用较少的信息量生成较高质量的三维效果的图形,计算过程简单,计算效率较高。
2、读入在曲面面域内以u、v两参数为坐标描述的边界信息,面的边界以环的形式出现,边界的边线是离散的点的连线,一个环包含若干闭合的首尾相连的点的连线。
3、检测环和边之间是否有原理三、四、五、六所述情况出现,如有重新整合环和边线使其符合要求。
4、逐一取检查整合后的环,将其引用的边记入栈D中,循环检查D中边线上相邻两点的u、v的差值,并与设定的精度值u’、v’相比较,如满足要求记入数组E,如两者任何一个大于u’、v’,则在两点之间插一新点,插点时有两种情况要分别处理。
第一种,如交于这一边线的另一邻面存在时,边线L在曲面F1中为L1在曲面F2中为L2。求得L1的中点p1(u1’,v1’)L2的中点p2(u2’,v2’),分别代入各自曲面的方程求得在三维空间的坐标(x1,y1,z1)、(x2,y2,z2),若距离D=(x12-x22)+(y12-y22)+(z12-z22)]]>大于系统容差ε(一般为一个像素),则在几个方向上以一定步长反复试算直到求得新的p1(u1’,v1’)、p2(u2’,v2’)使D<ε,试算时的约束条件是p1到L1两端点的距离近似相等。以D<ε时的p1(u1’,v1’)、p2(u2’,v2’)作为所求的插值点。
第二种,环边仅被限制在本曲面内而无其他邻面时,在二维面内利用这个曲面内这一段环边的原相邻顶点采用抛物线法内插求得新的点位。
5、循环处理曲面所有边界上的相邻点,直到所有相邻点的间隔都满足精度要求,取新环前将E置空。将所有相邻点两两相连,使所有边离散为直线的集合。此类边线记为b1类边线,其被剖分线剖分后的子边线仍为b1类边线。
6、以原始曲面映射的二维面域作为第一个待剖分面片记入队A,一个待剖分面片包含的信息有面片中未被剖分的环的数目及这些环的代码(环表)、因环被剖分而被归并入该面片的边的代码(边表)、面片四个角点的u、v坐标。每次剖分从栈中取一个面片F出队,若面片F的环数为0,且u向v向间隔均满足精度要求,则将其另存在数组B中,否则进行剖分计算。每次剖分结束后生成两个新面片进入栈A。剖分时在规定位置作平行于u轴或v轴的剖分线,结果以剖分线为界将F一分为二,分为F左、F右两面片。将F中所有环的边线及因环被剖分归入其边表的边线与剖分线作求交计算,根据求交结果,如出现属于一个环的边线被剖分线分在左右两边或与剖分线重合的情况,该环被剖分,它的边线与其脱离关系按u、v坐标归入F左、F右面片的边表,否则说明环没有被剖分,依据环的顶点坐标,将环归入F左、F右面片的环表,有环归入的面片其环的数目被累加。其余边线或直接按u、v坐标位置归入F左、F右面片的边表,或被分割形成两个新边线后分别归入F左、F右面片的边表,左右面片因此分别得若干环和若干个边线。同时剖分线也因此被分为若干段,剖分线每与一条边线有一个交点,该交点便进入剖分线的交点序列,依据与剖分线有交点的边线的归属情况在交点上打上左右标记。在所有边线与剖分线求交完毕后,对剖分线上的交点序列按u值或v值的大小排序,然后对已标记且排序后的剖分线上的交点之间的线段,按左右标记系列,以左0-左1、左2-左3、左4-左5...即先偶再奇号点之间的线段归入F左面片的边表中,左1-左2、左3-左4、左5-左6...即先奇再偶号点之间的线段被剔除,归并的同时检测线段两端点的坐标值,如相同说明为同一点,将其剔除,同理按交点的排序顺序统计右标记序列,将剖分线上相应的线段归入F右面片的边表中。
剖分线上的线段归并入一个面片后记为b2类边线。b2类边线与b2类边线的交点的三维坐标值以该点的u、v值代入曲面方程求得。b2类边线与b1类边线的交点的三维坐标值按b1边线的两个端点的三维坐标值插值求得。b2类边线被剖分所得的子边线仍为b2类边线。
7、循环执行第6步直到队空为止。
8、如用户需要绘线框图,计算面片四个角点的法矢并判断面片是否为背影面,如为非背影面将面片中的边线输出绘制,循环执行本步骤直到数组B中所有面片都已输出。如用户不需要绘线框图,转第九步。
9、从数组B中取出面片M。
10、从面片M的边表中查找出两个连接在同一顶点的边线ab、ac。
11、连接这两个边线不相接的两个端点b、c,使bc与边表中其余的边线作求交计算,如边表中有边与bc完全重合,则三条边线的三个顶点a、b、c组成的三角形记入数组C,从边表中删除该三条边线;如bc与其余边线部分重合或与其余边线有交点但不是b点或c点的,转第10步;如bc不与其余边重合,也无分割bc的交点,则自bc的中点向面片外引射线,若与边表中的边(包括查找出的ab、ac)有奇数交点,说明bc在多边形内部,a、b、c组成的三角形记入数组C,从边表中删除ab、ac,bc记入边表,若与边表中的边(包括查找出的ab、ac)有偶数交点,说明bc在多边形外部,转第10步。
12、判断面片的边表中是否为三个边线,若是组成一个三角形记入数组C,否则,转第10步。
13、判断数组B是否处理完毕,若是将数组C中的三角形输出到图形适配器进而绘制出图形,否则转第9步。
本装置工作原理是读入一个将要被绘制的面的信息,这些信息包括所要绘制生成的面的标识码、面引用的边的标识码及其地址、面引用的点的地址、边引用的点的地址,此处的点、边和面均为三维坐标系下的,地址指存储在内存中的位置。求出面的形式为[x=f1(u,v),y=f2(u,v),z=f3(u,v)],x∈(0,1),y∈(0,1),z∈(0,1)的参数方程,这些面包括平面、拉伸面、旋转面、Coons曲面、双线性曲面、NURBS曲面等。
在剖分之前需对环的边界作专门处理,当某一段环边是两个曲面相交生成的曲线,且两个面都将被绘制,显然环边在形体编码时都被离散为直线,这些直线的端点同时落在两个曲面内,但剖分是在两个曲面分别映射后的平面内进行的,在各自的平面内进行剖分时,剖分线与环边的交点将不直接利用边线的端点插值所得的U、V坐标值求该点在两个曲面共同的三维空间中的坐标,而是直接利用边线的端点在三维空间中的坐标插值求得。设a、b为边线的两个端点,c为交点,在二维坐标系下的坐标分别为(u1,v1)、(u2,v2)、(u3,v3),在三维坐标系下的坐标分别为(x1,y1,z1)、(x2,y2,z2)、(x3,y3,z3),d1=(u12-u22)+(v12-v22),]]>d2=(u12-u32)+(v12-v32),]]>s=d2/d1,x3=x1+s(x2-x1)、y3=y1+s(y2-y1)、z3=z1+s(z2-z1)。这样可以避免本来无缝相连的两个曲面复原绘制时出现缝隙。当绘制的精度要求高,用于控制边界走向的顶点的数量不够时依据以下两种方法进行插值,然后再对曲面剖分可满足精度和接缝紧密的要求。1、当某一段环边是两个曲面相交生成的曲线,且两个面都将被绘制时,在两个映射生成的二维面内利用已有的端点分别内插求得两个二维点,代入各自的曲面方程求得这两个点在两个曲面共同的三维空间中的坐标。求两点在三维空间中的距离L,如L大于系统容差ε,则利用摄动法使两点在两个曲面内摄动至距离L小于系统容差ε为止,接下来可利用这些插值点和原顶点将环边离散为逼近度更高的直线集合,再分别对两个曲面剖分。2、环边仅被限制在一个曲面内其他面无要求时,在二维面内利用这个曲面内这一段环边的原相邻顶点采用抛物线样条法内插求得新的点,再利用这些插值点和原顶点将环边离散为逼近度更高的直线集合,再对曲面剖分。
在以U、V为轴的二维平面(该二维平面是曲面映射后生成的)内将边界离散为直线后用平行于U轴或V轴的剖分线剖分平面区域,由剖分线处将一片平面区域一分为二,生成两个独立的平面区域,剖分后原区域内的环边和剖分线因此分属两个区域,包含环边和剖分线的区域是有效区域,对环边和剖分线进行分类归并求得每个有效区域包含的边线。反复进行以上步骤,直到U向V向均已达到规定的剖分次数且所有的内环均已被剖分过至少一次。对所求得的有效区域中的边线进行排序使其挨个相连,这些区域内将都只包含外环,亦即这些区域内只有一个或多个中间没有孔洞的简单多边形。再对这些简单多边形逐个三角形剖分,便最终完成了对整个面的三角形剖分。本方法采用循环找多边形的凸点剖分三角形法,可将排序和剖分成三角形合并完成。
在二维平面内利用剖分线对有效区域的剖分将依据以下原理进行原理一、判断点是否在多边形区域中,由点向区域外引任意射线,当该射线与区域的所有边线的交点数累计为奇数时,点在区域内;累计为偶数时,点在区域外;当射线与某段边线重合,交点数计为0,当且仅当点在边界上时,引不同的射线可能有奇数个或偶数个交点。
原理二、当面内有多个环,且环与环无交,如用一条直线将面剖分且剖分线从所有环的中间经过,则面将被剖分成两块独立的面,每个面内包含一些环的边线,这一直剖分线也将因与环边线有交点而被切割成若干段。逐一取剖分线上这些线段的中点分别与分入两个面的环的边线依原理一求交点,若有偶数个交点,剖分线上的这一段不在剖分后形成的一个面内,若有奇数个交点,这一段剖分线并入那一个面。最后分别对两个面内的边线进行排序,两个面内都将只有外环。若剖分线只与环交于一个顶点且环的所有边线均位于剖分线的一边,剖分线不剖分该环。
原理三、两个环不允许出现共边的情况,否则与原理一矛盾。此时所共边被剔除,重新归并为新的环。
原理四、若一个环的顶点落在另一个环某边的中部,该边以此点为界被剖分为两段,成为两条环边。
原理五、当交于一个顶点的环边的数目大于2时,则交于该点的环边的数目一定为偶数。在造型设计时和剖分时均可能出现交于一个顶点的环边的数目大于2的现象。若所有环均已被剖分过,在某一区域内存在一个交于一个顶点的环边的数目大于2的顶点,则说明该区域内只有外环无内环;若在某一区域内存在两个或两个以上交于一个顶点的环边的数目大于2的顶点,因此时不可能出现独立的不同时连通两个或两个以上这种顶点的内环,换言之,此时必有新出现的至少连通两个这种顶点的内环,这是由于环的多义性所致。环的多义性可致使剖分结果出现错误,但对环边进行检测,发现此现象后对环边重新归并组合成新外环和内环,并确保其中的内环都已被无歧义地明示为环而不是隐含在外环中(如此,内部的孔洞都将被剖分到),从而有效消除导致出现环的多义性现象的内环,然后再剖分就不会出现此类错误。
原理六、组成一个环的边或顶点应是有序排列的,否则不符合剖分要求。
权利要求
1.一种绘制三维图形的装置,其特征在于包括用于输入信息的输入装置、用于求解面的方程的方程系数求解器、用于检测并使环及其边满足剖分要求的环边整合装置、用于将环的边的两个端点的u值之差和v值之差与设定值进行比较以判定边是否符合精度要求的边比较器、用于在曲面的边界上插值使曲面边界满足精度要求的边插值器、用于将面的对角点的u、v坐标值之差的绝对值和面的环数与设定值进行比较的面比较器、用于判断面片是否为背影面,将非背影面中的边线输出绘制的线框输出装置、用平行于u轴及v轴的剖分线剖分面F,根据边线与剖分线求交计算的结果,将环、边线、剖分线上的线段分检归并入F左、F右面片的剖分器、用于从已完成剖分符合要求的面片M中分检出三角形的三角形分检器和用于将分检出的三角形输出到图形适配器的三角形输出装置,当图形处理器接受到计算机主机发出的指令时,处理器按照已经设定的上述各装置的首地址顺序地启动各装置,用于输入信息的输入装置从计算机主存的相应地址读入要处理的面的信息;方程系数求解器工作求出面的方程的系数;环边整合装置检测环及其边是否满足剖分要求,如不满足,对其整合使其满足要求;边比较器逐一取满足要求的环,将其引用的边存储在存储器的地址表D中,从D中循环取边与设定值比较,每取一个边地址表D减1,如满足要求存入存储器的地址表E中,如不满足要求,边插值器工作,插值后生成的两个边存入存储器的地址表D中,地址表D加2,当地址表D为空将该环引用的边更换为地址表E中的边,取新环前将地址表E置空,当所有环及其边均已被处理,该面及其环和角点的u、v坐标作为第一个待剖分面片存储在存储器的地址表A中;面比较器从A中逐一取面片与设定值比较,先进A的先取,后进的后取,直到A为空,如面片满足要求将其在地址表A中的地址存入存储器的地址表B中,如不满足要求,剖分器工作,剖分后生成的两个面片存入存储器的地址表A中;当存储器的地址表A为空时,如用户需要绘制线框图,线框输出装置工作直到B中所有面片都已被处理,如用户不需要绘制线框图,三角形分检器工作直到数组B中所有面片都已被处理,检出的三角形存入存储器的地址表C中;三角形输出装置工作直到C中所有三角形都已被输出到图形适配器。
2.根据权利要求1所述装置,其特征在于,检测并使环及其边满足剖分要求的环边整合装置位于三位形体的造型编码阶段。
3.根据权利要求1所述装置,其特征在于,边插值器在边界上插点分有邻面和无邻面两种情况,有邻面时试算至两个面内的插值点的点距小于系统容差,无邻面时在本面内采用抛物线法插值。
4.根据权利要求1所述装置,其特征在于,剖分器剖分时根据边线与剖分线求交的结果将环、边线、剖分线的线段分检归并入两个面片,当面片中不含未被剖分的环及u向v向的间隔满足要求时不再剖分。
5.根据权利要求1所述装置,其特征在于,剖分器剖分时剖分线上的线段是将交点排序后,根据左右标记按奇偶点号间隔分检归并入两个面片的。
6.根据权利要求1所述装置,其特征在于,剖分器剖分时b2类边线与b2类边线的交点的三维坐标值以该点的u、v值代入曲面方程求得;b2类边线与b1类边线的交点的三维坐标值按交点到b1边线的两个端点的二维坐标下的点距比在三维坐标系中插值求得。
7.根据权利要求1所述装置,其特征在于,线框输出装置绘制线框图时,不从面片M中分检出三角形,当判断出面片M为非背影面时,直接将面片M边表中的边线输出绘制成线框图。
8.根据权利要求1所述装置,其特征在于,三角形分检器是从面片M的边表中查找出两个连接在同一顶点的边线ab、ac,通过判断bc边是否与其它边相交、完全重合、bc边的中点在多边形内部来分检出三角形的。
全文摘要
本发明涉及用绘制参数图形的计算机设备。可以凭借较少的概要抽象的编码信息描述出曲面的参数方程及曲面的边界特征,通过将曲面的边界离散成直线进而将曲面的有效区域剖分成三角形的集合,再将这些三角形交由通常的图形适配器进行消隐、裁剪处理后可绘制出具有三维效果的图形。本装置而且可以在使用中根据需要调节绘制的精度,以及在不同的速度要求下进行不同形式的绘制输出。从而满足用户在计算速度快、复原三维形体的需要的信息量小、绘制精度高等方面的需求。利用较少的信息量生成较高质量的三维效果的图形,计算过程简单,计算效率较高。
文档编号G06T17/00GK1391194SQ0213800
公开日2003年1月15日 申请日期2002年7月19日 优先权日2002年7月19日
发明者章新苏 申请人:章新苏
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1