发明名称 一种提取和分类可展网格曲面的新方法
摘要 本发明公开了一种提取和分类可展网格曲面的新方法,在建立三角网格曲面模型后,进行提取泛可展区域,然后对泛可展区域寻找用来创建条带区域的边界顶点位置,通过边界顶点位置来对泛可展区域进行条带区域创建,再对条带区域进行直纹面方程拟合,进而对直纹面方程是否满足可展条件进行判断,如果满足则可确定可展类型,如果不满足,则对条带区域一分为二,再次对条带区域进行直纹面方程拟合,直到满足可展条件才结束。本发明方法有识别切线曲面的能力,能提取出连续柱面和连续锥面;识别的各种类型的可展曲面与模型真实的可展区域非常地接近。本发明方法的结果因为对提取出的可展曲面网格按可展类型精确地分片分类而对以后的网格处理更加有利。
申请公布号 CN105761289A 申请公布日期 2016.07.13
申请号 CN201610130281.1 申请日期 2016.03.08
申请人 重庆大学 发明人 段黎明;谷明辉;王茂林;邵辉;钱文斌;杨尚朋
分类号 G06T7/60(2006.01)I;G06T17/30(2006.01)I 主分类号 G06T7/60(2006.01)I
代理机构 重庆大学专利中心 50201 代理人 王翔
主权项 一种提取和分类可展网格曲面的新方法,其特征在于:在建立三角网格曲面模型后,包括以下步骤内容;①设定网格顶点高斯曲率的阈值提取三角网格曲面模型泛可展表面网格区域;对三角网格顶点v<sub>i</sub>的最大曲率和最小曲率按照公式(1)进行修订;<maths num="0001"><math><![CDATA[<mrow><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mi>A</mi><mi>max</mi></mrow></msub><mo>=</mo><mi>max</mi><mrow><mo>(</mo><mrow><mo>|</mo><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mi>max</mi></mrow></msub><mo>|</mo><mo>,</mo><mo>|</mo><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mi>min</mi></mrow></msub><mo>|</mo></mrow><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mi>A</mi><mi>min</mi></mrow></msub><mo>=</mo><mi>min</mi><mrow><mo>(</mo><mrow><mo>|</mo><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mi>max</mi></mrow></msub><mo>|</mo><mo>,</mo><mo>|</mo><msub><mi>K</mi><mrow><mi>i</mi><mo>,</mo><mi>min</mi></mrow></msub><mo>|</mo></mrow><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000937078740000011.GIF" wi="1110" he="175" /></maths>式中,K<sub>i,max</sub>表示最大曲率,K<sub>i,min</sub>表示最小曲率,i表示网格顶点的序列号,取值范围为0~N<sub>v</sub>,N<sub>v</sub>为网格的顶点总数;根据公式(2)为三角网格的顶点v<sub>i</sub>判断其是否属于平面或泛可展曲面;<img file="FDA0000937078740000012.GIF" wi="1317" he="230" />式中,label(v<sub>i</sub>)表示三角网格表面模型中区域类型;ε<sub>1</sub>和ε<sub>2</sub>均表示人为设定的参数值,且ε<sub>1</sub>&lt;ε<sub>2</sub>;②对步骤①中求得的一个泛可展网格区域,寻找用于创建条带区域的区域边界顶点的位置,要求用于创建这些条带区域的边界顶点是连续的,且所创建的这些条带网格区域不重叠;③对于一个泛可展网格区域,以步骤②中找到的区域边界顶点为标记,创建与边界顶点对应的条带网格区域;④对所操作的泛可展网格区域进行直纹面标准参数方程(3)的拟合;r=a(u)+vb(u)   (3)方程(3)中r是半径向量,表示直纹面上的点到原点的距离和方向;a=a(u)表示导线;b(u)表示直母线的方向的单位向量;v表示直纹面上的点沿着直母线方向到导线的距离;条带网格区域拟合直纹面包括拟合导线和拟合直母线;(a)拟合导线对有n个用来拟合的三维数据点,所要求解的系统如方程(4)所示;<maths num="0002"><math><![CDATA[<mrow><mfenced open = "(" close = ")"><mtable><mtr><mtd><msub><mi>x</mi><mn>0</mn></msub></mtd><mtd><msub><mi>x</mi><mn>1</mn></msub></mtd><mtd><msub><mi>x</mi><mn>2</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>x</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mn>0</mn></msub></mtd><mtd><msub><mi>y</mi><mn>1</mn></msub></mtd><mtd><msub><mi>y</mi><mn>2</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>y</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>z</mi><mn>0</mn></msub></mtd><mtd><msub><mi>z</mi><mn>1</mn></msub></mtd><mtd><msub><mi>z</mi><mn>2</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>z</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mi>A</mi><mfenced open = "(" close = ")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>u</mi><mn>1</mn><mn>3</mn></msubsup></mtd><mtd><msubsup><mi>u</mi><mn>2</mn><mn>3</mn></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>u</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mn>3</mn></msubsup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>u</mi><mn>1</mn><mn>2</mn></msubsup></mtd><mtd><msubsup><mi>u</mi><mn>2</mn><mn>2</mn></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>u</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></msubsup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mn>1</mn></msub></mtd><mtd><msub><mi>u</mi><mn>2</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>u</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>...</mo></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000937078740000021.GIF" wi="1285" he="303" /></maths>已知量为这n个拟合数据点的三维笛卡尔坐标(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),i=0,1,2,...,n‑1,而未知量是系数矩阵A;条带网格区域边界顶点的自变量参数u<sub>0</sub>设置为0,而其他数据点的自变量参数u<sub>t</sub>,t=1,2,...,n‑1依次设置为此数据点沿折线到边界顶点的距离;通过求解矩阵方程(4),得系数矩阵A;随着系数矩阵A的求解,即获得了拟合的连续的直纹面导线方程;(b)拟合直母线在直纹面标准参数方程(3)中,b(u)表示直母线的方向,其中数值约束为|b(u)|=1,即<img file="FDA0000937078740000022.GIF" wi="507" he="70" />拟合求解直母线方向的系统方程如(5)所示;<maths num="0003"><math><![CDATA[<mrow><mfenced open = "(" close = ")"><mtable><mtr><mtd><mrow><msub><mi>b</mi><mi>x</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>b</mi><mi>x</mi></msub><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>b</mi><mi>x</mi></msub><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msub><mi>b</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>b</mi><mi>y</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>b</mi><mi>y</mi></msub><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>b</mi><mi>y</mi></msub><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msub><mi>b</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>b</mi><mi>z</mi></msub><mrow><mo>(</mo><mn>0</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>b</mi><mi>z</mi></msub><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msub><mi>b</mi><mi>z</mi></msub><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd><mtd><mo>...</mo></mtd><mtd><mrow><msub><mi>b</mi><mi>z</mi></msub><mrow><mo>(</mo><mi>n</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced><mo>=</mo><mi>B</mi><mfenced open = "(" close = ")"><mtable><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>u</mi><mn>1</mn><mn>3</mn></msubsup></mtd><mtd><msubsup><mi>u</mi><mn>2</mn><mn>3</mn></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>u</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mn>3</mn></msubsup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msubsup><mi>u</mi><mn>1</mn><mn>2</mn></msubsup></mtd><mtd><msubsup><mi>u</mi><mn>2</mn><mn>2</mn></msubsup></mtd><mtd><mo>...</mo></mtd><mtd><msubsup><mi>u</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow><mn>2</mn></msubsup></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>u</mi><mn>1</mn></msub></mtd><mtd><msub><mi>u</mi><mn>2</mn></msub></mtd><mtd><mo>...</mo></mtd><mtd><msub><mi>u</mi><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>...</mo></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000937078740000023.GIF" wi="1483" he="303" /></maths>式中,b<sub>x</sub>(i),b<sub>y</sub>(i),b<sub>z</sub>(i),i=0,1,2,...,n‑1分别为直母线方向b(u)的坐标分量;求解方程(5),通过确定系数矩阵B,导线上各点的直母线的方向向量进而确定;最终从而确定直纹面标准参数方程(3);⑤然后根据直纹面的可展条件对该条带网格区域进行可展与否的判断:对拟合的直纹面标准参数方程(3)判断其是否满足在一个误差τ<sub>d</sub>之内满足可展条件(a′,b,b′)≤τ<sub>d</sub>;如果满足条件,则该条带网格区域是可展的,且只属于某一可展类型,对相邻的相同可展类型的条带网格区域进行区域的合并处理;如果不满足条件,该条带网格区域是混合类型可展的,进入步骤⑥;⑥对于一个混合可展类型的条带网格区域,应用半长迭代方法来区分分段面片;并以半条条带网格区域执行半长迭代操作,返回步骤⑤,直到分段形成的两个半条条带网格区域都是单个可展类型可展的。
地址 400044 重庆市沙坪坝区沙正街174号