一种曲面求交的方法

文档序号:6508298阅读:474来源:国知局
专利名称:一种曲面求交的方法
技术领域
本发明涉及一种曲面求交的方法。
背景技术
在众多计算机图形学的应用中,例如建模、生成有限元网络、科学视觉、界面和特 征检测等,经常遇到曲面与曲面相交(简称曲面相交)的问题。在边界表示几何建模的应 用中,曲面求交问题显得尤为重要。在现有的曲面求交方法当中,跟踪法是应用得最广泛的 方法,其原因是跟踪法相对其他方法更易于实现并具有通用性。但对于使用传统跟踪法进行曲面求交会涉及到一些问题,例如如何提高迭代的效 率,如何精确确定追踪步长和方向,如何保证曲面接近重合时的准确性等问题。

发明内容
有鉴于此,本发明的主要目的在于提供一种曲面求交方法,以便在利用追踪法进 行曲面求交过程中,有效地提高迭代的效率、确定追踪步长和方向的精确性以及曲面接近 重合时的准确性。本发明提供的一种曲面求交方法,包括以下步骤A、将曲面分割为小的相交区域;B、确定初始点;C、构造曲面求交二元方程;D、解所述曲面求交二元方程;E、根据所述二元方程的根构造交线。由上可以看出,本发明方法在利用追踪法进行曲面求交过程中,可以有效地提高 迭代的效率、确定追踪步长和方向的精确性以及曲面接近重合时的准确性。上述曲面求交方法,其特征在于,所述步骤A包括子步骤A1、判断曲面是否相交如果相交,则进入步骤A2 ;否则结束本流程;A2、构造相交区域。上述曲面求交方法,其特征在于,所述步骤A2包括以下子步骤A2. 1、分别判断两个曲面是否光滑,若是,则进行下一步,否则在曲面不光滑处将 其分割为两个子曲面片段,并以这两个子曲面片段代替该曲面;A2. 2、判断所述曲面或子曲面法向圆锥的角度是否都小于|、曲面或子曲面上每
条边界的绕过角度是否都小于f、两个曲面或子曲面法向圆锥是否不相交或者其角度是否
都小于某个指定值;当上述判断条件同时满足时,则执行下一步;否则结束本流程;A2. 3、根据曲面或子曲面、曲面或子曲面是否可能有极值点和一个坐标系构造相 交区域。
由上可以看出,上述两个曲面或子曲面法向圆锥的角度都小于某个指定值中,该 指定值是在曲面分割效率和准确性间权衡的参数。如果要提高曲面分割的准确性,只需要 将所述指定值调小即可;反之,则可以提高曲面分割的效率。上述曲面求交方法,其特征在于,所述步骤C包括以下子步骤Cl、定义二元公式值;C2、定义求值区间;C3、定义方程的根; C4、设计二元公式;C5、使用上述二元公式值、求值区间、方程根和二元公式组成所述二元方程。上述曲面求交方法,其特征在于,所述步骤C4包括将曲面交线定义为在区域坐标系Z坐标方向上距离为0的点的集合;设第一个曲面的方向参数为U、V,第二个曲面的方向参数为p、q, S为第一个曲面 上的任意一点,F为第二个曲面上与S对应的点,S和F的的关系是(S-F)*Z = 0 ;设两点间(S、F点)的距离D = (S-F) *Z,则
Γ 3D (SS 5F dp dF dq、 —=---χ —--χ— ·Ζ
6u \dn dp du 3q duy
r SD fas 5F dp dV dq\ ^——=---χ —--χ— ·Ζ
dv IvSv dp dv dq dv ^
d2D f d2s d2F (dp\2 , d2F dp dq dF d2p d2F 广 5q 丫 dF a2q) 7 -=----X —i- -2x-Χ —X —--X~--r X L--X~7 · Z
Su2 I^au2 dp2 I,Su) dpdq Su 5u 5p Su2 dq2 ^duJ dq duz ^
S2D (d2S d2F r^pV 。S2F dp dq dF d2p d2F ^SqV dF 32q)
-=----x — -2x-χ —χ —--χr--r-x ~L--χ~r ·Ζ
dv2 ^av2 dp2 [dvj 6p0q dv dv δρ dv2 dq2 {dvj dq dv2 J
S2D ( S2S S2F dp φ S2F δο dq, dF d2p d2F dq dq d2F dp dq ^F 52q )
-=-----X-lX----X-lX-----X---rX —X—---——X — X —--— x丨· Z
Su 5v IvSuSv 5p2 Su Sv dpdq du dv dp dudv dq du dv dpdq dv da d<\ dudv JI通过如下方程组解出 5u、 du
Γ (as dF dp dF dg\ v _---x —--Χ— ·Χ = 0
Kdu dp du dq du >
r fdS dF dp dF dq、Λ---x —--x— ·Υ = 0
、Sp du dq du ^J 通过如下方程组解出
OV、 OW
Γ (dS dF dp d¥ dq^] v Λ---y. —--χ— ·Χ = 0
ydv dp dv dq dv /r n f dS dF dp d¥ dq) v n---x —--x— Y =0
l5v 5p 5v 5q
S2P
q 2 > q 2 ^r ^ F 2 F12 2 V
a a ^ ^52I5P55V
, -
s 2 s 2
2 2U2U
加 5 ^ 3al
通过如下方程组解出
-X
fdPy 。d2F dp dq dF 52p 52F
丄一2x-x —x —--x~j--j
ydu J dpdq du du dp du dq
'生丫—2xi!LxH义夺-驾
5u J dpdq dn du dp du dq
(d^2 Uu.
'dq du
3F d'
d^V av2、
、2s a2s
d2p d\
通过如下方程组解出
a2F —r x(dp^‘7 d2¥ —2x-dqSF -->ZPd2¥ --xdp1[dv^dpdq5vdvdp5v2dq2l^vJa2F ——r x2 . d2F —2 x-A5qdF -->>82F --r xfdq\dp2^dvjdpdqdvdvdpdv'dq'、5vJ
-X 5qdu2 ySF _va2q、3u2dF"dqK5V2dFd2q / 1
>X = 0
Y = 0
X = 0
’ Y = 0
5u5v、 3uSv
通过如下方程组解出
d2S d2F ap 5p a2F 5p dq dF d2p d2F dq dq d2F dp dq 3F
----X —X —--X —X —--X-------X —X —--X — X —--;
d2
5p3q dv 5u 3q dudv
<X = 0
、5u5v dp 5u dv dpdq 8u dv dp dudv 3q du
“a2S 52F dp dp 52F dp 8q dF d2p d2F 8q dq d2F dp dq dF d2q ) dudv dp du dv dpdq du dv dp dudv dq du dv dpdq d/ du dq d\xd\ J
o上述曲面求交方法,其特征在于,所述步骤D包括子步骤D1、根据步骤B获得的初始点及其对应的追踪方向,判断能否在该初始点处向前 追踪如果可以,则进入下一步;否则转到步骤D9 ;D2、确定当前追踪方向为向前;D3、根据初始点和当前追踪方向查找与该初始点对应的曲面相交区域如果找到 所述区域,则进入下一步;否则,则转到步骤D9 ;D4、根据初始点追踪下一个点;如果追踪到下一个点,则进入下一步;否则返回步 骤D3 ;D5、将追踪到的下一个点定义为当前点;D6、判断当前点是否为终止点或所述相交区域的端点如果是,则进入下一步;否 则返回步骤D4;D7、判断当前点是否为初始追踪点如果不是,则进入下一步;否则进入步骤D14 ;D8、判断能否在初始点处向后追踪如果可以,则进入下一步;否则进入步骤D14 ;D9、确定当前追踪方向为后向;D10、根据当前点和当前追踪方向查找相关区域如果找到相关区域,则进入下一
8步;否则,则转到步骤D14;D11、根据当前点追踪下一个点;如果追踪到下一个点,则进入下一步;否则返回 步骤DlO ;D12、将追踪到的下一个点定义为当前点;D13、判断当前点是否为终止点或所述相交区域的端点如果是,则进入下一步; 否则返回步骤Dll ;D14、将前后两个追踪方向都得到的根合并成一个根。上述曲面求交方法,其特征在于,所述步骤D5包括以下子步骤D5.1、估算追踪步长;
D5. 2、计算追踪的切线方向;D5. 3、估算下一个点;D5. 4、计算下一个点的迭代范围;D5. 5、迭代到下一个点;D5. 6、检查下一点是否合法如果不合法,则进入下一步;否则,转到步骤8 ;D5. 7、将追踪步长减半,重新估算下一个点后转回步骤5 ;D5.8、结束。上述曲面求交方法,其特征在于,所述步骤D5. 1中对追踪步长的估算如下在当前值Val的一阶偏导数数Fv不为0时,估算的追踪步长为
3 2
+在当前值Val的一阶偏导数数Fu不为0时,则估算的追逐步长为
12 dU dU2
+淇中,当前值Val的参数为U、V。
12 dV dV2上述曲面求交方法,其特征在于,所述步骤D5. 2中对追踪切线方向的计算如下设追踪方向为rVt,当前值的参数为U、V ;如果追踪方向为向前,则rVt = (Fv, -Fu);否则 rVt = (-Fv,Fu);如果rVt的长度不为0,则将rVt单位化后,作为最终的追踪切线方向;否则,设判 别式d = Fuv*FuV-Fuu*FVV,其中Fu、Fv为当前值的一阶偏导数,Fuv, Fuu、Fvv为当前值 的二阶偏导数;如果判别式d为0,则将当前点减去前一个点得到的向量单位化后,作为最终的追 踪切线方向;如果追踪方向为向后,则rVt = (-Fvv, Fuv);否则 rVt = (Fvv, -Fuv);如果rVt的长度不为0,则将rVt单位化后,即为最终的追踪切线方向;否则将当前 点减去前一个点得到的向量单位化后,作为最终的追踪切线方向。上述曲面求交方法,其特征在于,所述步骤D5. 4包括以下子步骤D5. 4. 1、将当前相交区域的范围、所有初始点和当前点限定的范围、所有已知根的 端点和当前点限定的范围以及当前点自身限定的范围的求并。D5. 4. 2、将所述求并的结果作为下一个点的迭代范围。由上可以看出,当前相交区域的范围;所有初始点和当前点限定的范围,这个限定 能保证追踪不越过任何初始点,从而避免得到重复的根;所有已知根的端点和当前点限定的范围,这个限定保证追踪得到的根不重叠;以及当前点自身限定的范围,以保证迭代不到 当前根已经经过的位置。上述曲面求交方法,其特征在于,所述步骤D5. 5包括以下子步骤D5. 5. 1、定义所述迭代方程组,如下
权利要求
一种曲面求交方法,其特征在于,包括以下步骤A、将曲面分割为小的相交区域;B、确定初始点;C、构造曲面求交二元方程;D、解所述曲面求交二元方程;E、根据所述二元方程的根构造交线。
2.根据权利要求1所述的曲面求交方法,其特征在于,所述步骤A包括子步骤 A1、判断曲面是否相交如果相交,则进入步骤A2 ;否则结束本流程;A2、构造相交区域。
3.根据权利要求2所述的曲面求交方法,其特征在于,所述步骤A2包括以下子步骤 A2. 1、分别判断两个曲面是否光滑,若是,则进行下一步,否则在曲面不光滑处将其分割为两个子曲面片段,并以这两个子曲面片段代替该曲面;A2. 2、判断所述曲面或子曲面法向圆锥的角度是否都小于f曲面或子曲面上每条边碎、界的绕过角度是否都小于f、两个曲面或子曲面法向圆锥是否不相交或者其角度是否都小于某个指定值;当上述判断条件同时满足时,则执行下一步;否则结束本流程;A2. 3、根据曲面或子曲面、曲面或子曲面是否可能有极值点和一个坐标系构造相交区域。
4.根据权利要求1所述的曲面求交方法,其特征在于,所述步骤C包括以下子步骤 C1、定义二元公式值;C2、定义求值区间; C3、定义方程的根; C4、设计二元公式;C5、使用上述迭代公式值、求值区间、方程根和二元公式组成所述二元方程。
5.根据权利要求4所述的曲面求交方法,其特征在于,所述步骤C4包括 将曲面交线定义为在区域坐标系Z坐标方向上距离为0的点的集合;设第一个曲面的方向参数为u、V,第二个曲面的方向参数为p、q,S为第一个曲面上的 任意一点,F为第二个曲面上与S对应的点,S和F的的关系是(S_F)*Z = 0 ; 设两点间(S、F点)的距离D = (S-F)*Z,则
6.根据权利要求1所述的曲面求交方法,其特征在于,所述步骤D包括子步骤 D1、根据步骤B获得的初始点及其对应的追踪方向,判断能否在该初始点处向前追踪 如果可以,则进入下一步;否则转到步骤D9 ; D2、确定当前追踪方向为向前;D3、根据初始点和当前追踪方向查找与该初始点对应的曲面相交区域如果找到所述区域,则进入下一步;否则,则转到步骤D9 ;D4、根据初始点追踪下一个点;如果追踪到下一个点,则进入下一步;否则返回步骤D3 ;D5、将追踪到的下一个点定义为当前点;D6、判断当前点是否为终止点或所述相交区域的端点如果是,则进入下一步;否则返 回步骤D4 ;D7、判断当前点是否为初始追踪点如果不是,则进入下一步;否则进入步骤D14 ; D8、判断能否在初始点处向后追踪如果可以,则进入下一步;否则进入步骤D14 ; D9、确定当前追踪方向为后向;D10、根据当前点和当前追踪方向查找相关区域如果找到相关区域,则进入下一步; 否则,则转到步骤D14;D11、根据当前点追踪下一个点;如果追踪到下一个点,则进入下一步;否则返回步骤D10 ;D12、将追踪到的下一个点定义为当前点;D13、判断当前点是否为终止点或所述相交区域的端点如果是,则进入下一步;否则 返回步骤D11 ;D14、将前后两个追踪方向都得到的根合并成一个根。
7.根据权利要求6所述的曲面求交方法,其特征在于,所述步骤D5包括以下子步骤 D5. 1、估算追踪步长;D5. 2、计算追踪的切线方向; D5. 3、估算下一个点; D5. 4、计算下一个点的迭代范围; D5. 5、迭代到下一个点;D5. 6、检查下一点是否合法如果不合法,则进入下一步;否则,转到步骤8 ; D5. 7、将追踪步长减半,重新估算下一个点后转回步骤5 ; D5. 8、结束追踪。
8.根据权利要求7所述的曲面求交方法,其特征在于,所述步骤D5.1中对追踪步长的 估算如下在当前值Val的一阶偏导数数Fv不为0时,估算的追踪步长为3 2+ ;在当前值Val的一阶偏导数数Fu不为0时,则估算的追逐步长为12 dU dU2+淇中,当前值Val的参数为U、V。12 dV dV2
9.根据权利要求7所述的曲面求交方法,其特征在于,所述步骤D5.2中对追踪切线方 向的计算如下设追踪方向为rVt,当前值的参数为U、V;如果追踪方向为向前,则rVt= (Fv,-Fu);否 则 rVt = (-Fv, Fu);如果rVt的长度不为0,则将rVt单位化后,作为最终的追踪切线方向;否则,设判别式 d = Fuv*Fuv-Fuu*Fvv,其中Fu、Fv为当前值的一阶偏导数,Fuv、Fuu、Fvv为当前值的二阶偏导数;如果判别式d为0,则将当前点减去前一个点得到的向量单位化后,作为最终的追踪切 线方向;如果追踪方向为向后,则rVt = ("Fvv, Fuv);否则rVt = (Fvv, -Fuv); 如果rVt的长度不为0,则将rVt单位化后,即为最终的追踪切线方向;否则将当前点减 去前一个点得到的向量单位化后,作为最终的追踪切线方向。
10.根据权利要求7所述的曲面求交方法,其特征在于,所述步骤D5.4包括以下子步骤D5. 4. 1、将当前相交区域的范围、所有初始点和当前点限定的范围、所有已知根的端点 和当前点限定的范围以及当前点自身限定的范围的求并。 D5. 4. 2、将所述求并的结果作为下一个点的迭代范围。
11.根据权利要求7所述的曲面求交方法,其特征在于,所述步骤D5.5包括以下子步骤D5. 5. 1、定义所述迭代方程组,如下
全文摘要
本发明提供了一种曲面求交方法,包括步骤将曲面分割为小的相交区域;确定初始点;构造曲面求交二元方程;解所述曲面求交二元方程;根据所述二元方程的根构造交线。从而在利用追踪法进行曲面求交过程中有效地提高迭代的效率、确定追踪步长和方向的精确性以及曲面接近重合时的准确性。
文档编号G06F19/00GK101980231SQ20101053641
公开日2011年2月23日 申请日期2010年11月9日 优先权日2010年11月9日
发明者王作远 申请人:广联达软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1