专利名称:一种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法和系统的制作方法
技术领域:
本发明涉及计算机三维建模技术,特别是涉及一种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法和系统。
背景技术:
确定给定代数曲面的几何和连接关系,并用网格近似表示曲面是计算机图形学和几何建模的一个重要课题。曲面网格化可以正确地显示曲面,也可以用来展示曲面上的工程应用,例如有限元分析、计算机三维建模、计算机辅助设计、对象三维重建等应用。如何绘制出给定的隐式方程确定的曲面是近年来颇为流行的一个课题。最流行的就是Marching Cube方法,将给定的空间不断细分为更小的立方体,直到每个小立方体中曲面的几何结构都能够被确定(参见LORENSEN, ff. E.,AND CLINE, H. E. 1987. Marching cubes a high resolution 3d surface construction algorithm. In Proc. SIGGRAPH 1987,ACM Press.). Plantinga和Vegter提出了法线变化条件从而给出更好的网格化算法(参见 PLANTINGA,S.,AND VEGTER,G. 2004. Isotopic implicit surface meshing. In Proc. Symp. on Geometry Processing,251-260. PLANTINGA, S.,AND VEGTER, G. 2007. Isotopic meshing of implicit surfaces. The Visual Computer 23,45-58.) · Hart 等提出 了基于 Morse 理论的算法(参见 HART,J. C. 1998. Morse theory for implicit surface modeling. In Mathematical Visualization, Springer-verlag, H. Hege and K. Polthier, Eds. ,257-268.),该算法引入一个变元来确定曲面的几何结构。这些算法都是纯粹的数值方法,直接对曲面网格化,速度较快,但是都只能处理无奇点的曲线或曲面,对有奇点的几何对象,可能会绘制出错误的图形。近年有些学者提出符号数值混合算法,先用柱形代数方法将欧氏空间分为柱形胞腔,使给定曲面在每个胞腔中都不变号,从而得到一种计算曲面几何结构的新方法。这类方法的基本步骤都是先通过分解空间确定曲面的几何结构和连接关系,然后再将非奇部分网格化(参见 D. S. Arnon, G. Collins,and S. Mccallum,1988. Cylindrical algebraic decomposition, iii an adjacency algorithm for three-dimensional space. J. Symbolic Comput· 5,1,2,163-187. J. S. Cheng, X. S. Gao,and M. Li, 2005. Determine the topology of real algebraic surfaces. In Mathematics of Surfaces, Springer-Verlag,121-146. S. Mccallum, and,G. E. Collins,2002. Local box adj acency algorithms for cylindrical algebraic decompositions. J. Symbolic Comput. 33, 321-342. B. Mourrain, and J.P. Tecourt,2005. Computing the topology of real algebraic surfaces. In MEGA electronicproceedings.) 0 在这种方法中,如何进行空间的分解就显得尤为重要,空间分解一般是通过确定曲面的奇点,以及曲面在奇点处的连接关系来得到。曲面的奇点是一个零维三角多项式系统的实根,奇点连接着的分枝数,即该奇点的重数,就是对应实根的重数。
因此,求解零维三角多项式系统,即有有限个零点的三角多项式系统,是计算科学、工程等领域的一个基本问题。用数值的方法来求解零维三角多项式系统一般会因为数值表示的误差导致结果不正确,并且不能够计算重数。Lu等人提出一种隔离零维三角系统实根的方法(参见 Z. Lu, B. He, Y. Luo and L. Pan, An algorithm of real root isolation for polynomial systems, in Proceedings of International Workshop on Symbolic-Numeric Computation, Xi 1 an, China, Julyl9_21,94-107, 2005.),但是他们的方法没有终止判定条件,也不能处理重根。Collins等用区间算法和Descartes方法来计算(参见 G. E. Collins, J. R. Johnson, and ff. Krandick, Interval arithmetic in cylindrical algebraic decom-position, J. Symb. Comput. , 34 :145-157,2002. )。Xia 和Yang也提出了一种基于结式计算的算法(参见B. Xia and L. Yang, An algorithm for isolating the real solutions of semi-algebraic systems, J. Symb. Comput. ,34 461-477,2002.),但是他们的方法在有些情况下会失效。
发明内容
基于现有技术的不足,本发明提供一种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法和系统,该方法通过计算零维三角多项式系统的所有实根及其重数得到曲面的特征点及其重数,从而确定特征点之间连接关系得到曲面连接关系图,最后绘制出空间结构准确的曲面图像。—种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法,包括以下步骤I)确定曲面的特征点;特征点包括曲面的独立奇点,奇异线上的点,与奇点邻近的非奇点。执行如下步骤(I)确定特征点满足的零维三角多项式系统;(2)求解零维三角多项式系统;包括以下步骤I.对多项式系统进行预处理,通过线性变换将其变换到局部一般位置,包括以下步骤(a)计算实根的隔离界;(b)估计根的上界,执行以下步骤(i)将多项式拆分成两个单项式项数最少的正系数多项式之和;(ii)计算上界多项式和下界多下式;(iii)计算上界多项式和下界多项式的根的上界;(iv)取上界多项式和下界多项式的根的上界的最大值。(C)确定线性变换,把多项式系统变换到局部一般位置;II.将所有实根投影到一维空间中,通过计算结式来进行投影,得到一个单变元方程,该投影保持根的重数不变;III.求计算单变元多项式方程的所有实根及其重数。IV.通过线性变换将一元实根提升回原方程组的实根。2)生成曲面连接关系图。
曲面的连接关系图包括三部分特征点(点集合),特征点之间的连接关系(边集 合),特征点构成的三角片与边的连接关系(面集合)。3)绘制曲面。步骤2)中得到的面集合已经是曲面的一个三角网格化,我们可以直接用他来绘 制网格曲面,或者在此基础上通过其他光顺化方法绘制更光滑的曲面。相应地,本发明提出了设计了一种通过计算零维三角多项式系统所有实根及其 重数进行曲面绘制的系统。目前,许多需要对象三维建模的领域都涉及到如何绘制隐式曲面图像的问题。本 发明提出的技术方案,采用首先通过计算零维三角多项式系统得到曲面的特征点,然后通 过确定特征点之间连接关系得到曲面连接关系图,最后通过连接关系图绘制曲面的方法, 避免了纯数值方法绘制有奇点隐式曲面出错的工程难题,能够保证绘制出空间结构准确的 立体曲面图像。本发明方法明确,结果鲁棒,可以用于隐式曲面的立体绘制。
图1本发明的技术方案流程图2确定曲面特征点流程图3计算零维三角多项式系统所有实根流程图4多项式系统预处理流程图5估计根的上界流程图6曲面连接关系图中确定边结合示意图7曲面连接关系图中确定面结合示意图8-10三维绘制效果图11本发明的系统框图。
8-10三维绘制效果具体实施例方式一种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法和系 统,首先,确定曲面的特征点;然后确定特征点处曲面的连接情况;最后,后绘制出曲面。具 体流程参见图I。下面具体介绍关键的实现细节I.确定曲面Mx1, x2, X3) = 0的特征点,流程如图2所示。特征点包括曲面的独立奇点,奇异线上的点,与奇点邻近的非奇点。执行如下步 骤(I)确定特征点满足的零维三角多项式系统。奇点包含在零维三角多项式系统E 3 = Ifi(X1) , f2(x1; x2) , f3(x1; x2, x3)}(I)的实根中,其中
权利要求
1. 一种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法,包括以下步骤1)确定曲面的特征点;特征点包括曲面的独立奇点,奇异线上的点,与奇点邻近的非奇点;其包括如下步骤(1)确定特征点满足的零维三角多项式系统;(2)计算零维三角多项式系统的所有实根及其重数;其包括以下步骤1.对零维三角多项式系统Ση = If1 (X1) , f2(xi X2) ...,fn(xi,x2,...,xn)}进行预处理,通过线性变换将其变换到局部一般位置;II.将所有实根投影到一维空间中,通过计算结式来进行投影,得到一个单变元方程, 该投影保持根的重数不变;III.计算单变元多项式方程的所有实根及其重数;IV.通过线性变换将一元实根提升回原方程组的实根;2)生成曲面连接关系图曲面的连接关系图包括三部分点集合,即步骤I)确定曲面的特征点集合;边集合,即特征点之间的连接关系;面集合,即特征点构成的三角片与边的连接关系;3)绘制曲面步骤2)中得到的面集合已经是曲面的一个三角网格化,以此直接绘制网格曲面,或者在此基础上通过其他光顺化方法绘制更光滑的曲面。
2.根据权利要求I所述的方法,其中,对零维三角多项式系统预处理包括1)计算实根的隔离界i= 1,2, *··η-1 ;2)估计根的上界Ri,i = 2,3, *··η ;3)确定线性变换,把多项式系统变换到局部一般位置。
3.根据权利要求2所述的方法,其中,估计根的上界包括设实数列(ξ1; I2,…, η)由一个包含它且端点为有理数的区间列[a^bJXtay b2] X…X Lai^1, Iv1]表不,将多项式拆分
4.根据权利要求2所述的方法,其中确定线性变换,把多项式系统变换到局部一般位 置包括对E 做线性变换
5.根据权利要求1所述的方法,其中,通过线性变换将一元实根提升回原方程组的实 根包括通过线性变换
全文摘要
一种通过计算零维三角多项式系统所有实根及其重数进行曲面绘制的方法和系统,包括步骤确定曲面特征点,通过计算零维三角多项式系统所有实根及其重数得到曲面的特征点及其重数;生成曲面连接关系图,通过确定特征点之间的连接关系得到连接关系图;绘制曲面,在连接关系图的基础上直接绘制网格曲面或者通过其他光顺化方法绘制更光滑的曲面。
文档编号G06F17/50GK102609987SQ201210003409
公开日2012年7月25日 申请日期2012年1月9日 优先权日2012年1月9日
发明者李家, 程进三, 高小山 申请人:北京电子科技学院