《机械设计与制造》,GAR #&&’
文章编号:!&&!^X**)$#&&’(&%^&&%%^&#
-6R %/5G=01CFM+C@021_/51BD5GABFC3DD 3
一种快速求取空间任意两条曲线交点的算法
董明晓!" #郑康平#
$! 山东建筑工程学院,济南#%&&!’($#西安交通大学,西安)!&&’*(
!" #$%&’()*+,&’-.(/0$1,("2("%)*3(")3’43/)(&"5&(")&,)6&’#"2&+/.’734("45#/3
+,-./01234056!" #" 789-. :5123;012#
$! 612?1@A0ABAC6D EFG=0ACGABFC51>91201CCF012" H0151#%&&!’($#I0J 51H056A612K10LCF@0AM"I0’51)!&&’*"N=03! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "
15(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "
【摘要】求空间两条曲线的交点是NE+O NE/重要内容之一,它的准确性与效率直接影响系统的可靠性与实用性。通常是将两条曲线的方程联立求解,或者是对曲线建立包围盒。但上述两种方法计算量较大,甚至求解困难。这里提出一种快速实用的曲线求交算法,具有较高的稳定性和可靠性。该算法分两
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "
步进行,首先根据P 样条曲线的控制多边形判断两条曲线是否相交,并求出两条曲线存在交点的可能参数区间,然后在此区间内,利用控制顶点算出所对应的曲线段,进行精确求交计算。与常用的包围盒方法相比,该算法效率高、精度易于控制,并通过实例验证算法的有效性。
关键词:曲线求交;算法;P 样条曲线;自由曲线
【!84)’#/)】!"#$%&’()*"+,’(,)-.)-&*"#)-*#(/#0*)’-1’)-*’,*2’,(##3,’(+04(5#/)/’-#’,0(40)$%/*#1/)-NE+O NE//6/*#+78*/$004($06$-.#,,)0)#-06)-,%4#-0#*"#(#%)$9)%)*6$-.1($0*)0$9)%)*6’,*"#/6/*#+7:#-#(;$%%67?4**"#0$%04%$*)-&1(’0#.4(#)/5#(60’+1%#>#/$+1%#/7
9316&’24::")3’43/)(&"&,/.’734;!$%&’()*+;’33=,&’+/.’73中图分类号:SQX*!R)#
文献标识码:E
再建立包围盒,然后重复进行包围盒的求交判断,直到包围盒小于一定尺寸。但上述两种方法计算量较大,甚至求解困难。本文提出一种快速实用的曲线求交算法,算法分两步进行:
$! (首先判断两条曲线是否有可能相交,求出存在交点的可能区间。
$#(在两条曲线存在交点的区间内,计算两条曲线的最短距当&0U01]>0@0! 时,所对应的点即为交点,否则两离U01]>0@,条曲线不相交。
神经网络设计R 北京:机械工业出版社,#&&XR
复旦大学出版社,#张立明R 人工神经网络的模型及其应用R 上海:!**’R西安电子科技大学出版社,X 焦李成R 神经网络的应用与实现R 西安:!**YR
机械工业出版社,’孙靖民R 机械优化设计R 北京:!**%R
李永生,威学成R 梯度法与PQ 神经网络的结合在机械优化设%许崎,
计中的应用R 机械设计与制造工程,#&&#$#(R
Y 飞思科技产品研发中心R /ESZEPYR%辅助神经网络分析与设计R 北京:电子工业出版社,#&&XR
杨汝清,陈亮,袁池R PQ 神经网络在减速器回差数据拟合中) 黄润青,
(%)的应用R 机械与电子,#&&#R
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "
! 引言
两空间曲线求交计算是NE+O NE/经常遇到的问题,通常的做法是将两曲线的方程联立求解[! \。如果没有解析解,或者解析法计算复杂,可以采用各种近似解,其中一种近似解法是“化为”将曲线直线段的集合,然后求直线段的交点,这个交点就作为曲线求交的近似解。也可以对曲线建立包围盒[! \,当两曲线的包围盒相交时,把曲线分割为两条子线段,对于子线段
%来稿日期:#&&’^&X^&)
‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
性关系转换成了纯粹的数学关系,采用多水平正交表选取样本,设计变量自动搜索寻优计算,弥补了过去在实体结构上只能进行方案式比较优化的缺陷,消除了人为因素的影响。因此利用PQ 神经网络模型进行优化计算要比在有限元模型上容易得多。
(#)利用PQ 网络的自学习功能和分布式处理功能,可以实现传动系统知识的自动获取,但仅靠神经网络还不能完全满足实际复杂系统设计的需求,还应考虑引入其他智能系统来对PQ 网络进行全局的优化设计。
参考文献
(美)! 戴葵等译R /5FA01SR 85251" 86T5F>PR +CUBA="/5FV8R PC5WC 著R
79:7
《机械设计与制造》@
JP6E C8
" 算法原理
所对应的两条曲线没有交点,如图0+; , 和图0+
下面以均匀三次#$%&’()*曲线+开曲线, 为例,说明算法的上述判断原理的算法步骤为:
原理和步骤。
%=*&06分别选取两条曲线控制多边形的其中一条边。给定控制顶点! " ," -./0/…/) ,及控制顶点#$,$-./0/%=*&"6计算! 0和! " ,如果! 0与! " 方向相反,计算! ! 与…/1,则空间两条曲线为2" 32! 3
! 5,
如果! ! 与! 5方向相反,则所对应的两条曲线存在相交的可[
050
.
能性,分别记录所对应的控制顶点+! " $0/! " /! " 70/! " 7" , 、+-$$0/
(%(&’)
)-. 4
0’’" ’! ]$! . . ! () 0+0,
-$/-$70/-$7" , 及参数区间,
以备下一步处理。如果! ! 与! 5方向相$! $! 0! 4$! ! 0
][! (! () " ! 同,则所对应的两条曲线没有交点。如果! () !
]
0与! " 方向相同,则 0
50. 所对应的两条曲线也没有交点。
*((+, )
)-40, , " , ! ]
$ -.
! . !
. ! $4!
. +) " ,
%=*&!6重复上述步骤0和步骤" ,直到遍历两条曲线控制" 多边形的所有边,并分别记录所对应的曲线段的控制顶点和参 $0! $!
-. ) 0-. -. ) !
数区间。
其中. 0’00,(-. ,0,…,/$! ,. 0, 00,. -. ,0,…,0$! 。
经过上述算法处理,既可判断空间两条曲线是否可能相交,"60判断两条曲线是否有可能相交以及存在交点区间
以及交点所位于的曲线段。
由#$%&’()*曲线定义可知,顺序连接控制顶点的折线可组"6" 在两条曲线存在交点的区间内,
计算两条曲线的成#$%&’()*控制多边形。上面两条曲线,对于控制顶点! " ," -最短距离
./0/…1/,其节点矢量2-D &. ,&0,…,&/75E ,曲线定义域&6在两条曲线存在交点可能的参数2+! ,&/70E ,在定义域内不含重节点时,曲线段数为/$" 段,控区间内,利用控制顶点正算出所对应制多边形的边数为/条。对于控制顶点#$,$! ./0/…/0,其节的曲线段,求两条曲线的最短距离。具点矢量342+. ,+0,…,+075E ,曲线定义域+62+! ,+070E ,在定体做法是在其中一条曲线6+&+’, , 上义域内不含重节点时,曲线段数为0$" 段,控制多边形的边数取一点,则这一点到另一条曲线*++为0条。另外,#$%&’()*曲线具有局部支撑性,移动第" 个控+, , , 的最短距离应满足下面的条件制顶点,至多将影响到定义在区间+&图" 两曲线的最短距离
" 1&" 75, 上那部分曲线的形253+如图" 所示, 。
状2032" 3。
判断两条曲线是否有可能相交,可利用控制多边形进行判{*(5, )
・(6(’)7*(, ))4. 6
(5’)・(6(’)7*(, ))4. +! ,
断,如果两条曲线的控制多边形存在相交的可能,则两条曲线上式中*5+, , 和6>+’, 分别为曲线*+++, , , 和6+&+’, , 上也同样存在相交的可能。判断方法如下:首先取两条曲线控制对应点的切矢向量。按照式+! , 分别以b ’和b , 为步长,进行迭多边形的第"5+"5-0,…,/, 边和第$5+$5-0,…,0, 边,两个边代计算,可求出一个最小的距离1()?:(%,当. 01()?:(%0" +" 可的相对位置有四种情况,分别如图0+8, 9+:, 所示。其中" a " 7取为0. $4或更小的值, 时,则说明两条曲线有交点,如果不满0为一曲线控制多边形的其中一条边,$a $70为另一曲线控制足,则两条曲线不相交。
多边形的其中一条边,! 0是+" a " 70, 边到+" a $, 边连线的有向夹角,! ! 算法实例
" 是+" a " 70, 边到+" a $70, 边连线的有向夹角,! ! 是+$a $70, 边到+" a $, 边连线的有向夹角,! 以三次均匀8样条曲线计算为例,验证了上述算法的正确5是+$a $70, 边到+$a " 70, 边连线的有向夹角。规定逆时针方向角为正,顺时针性与有效性,实现步骤如下:
方向角为负,判断规则如下。
(0)从文件中读取曲线控制顶点数据,分别构造两条三次均匀8样条曲线。(" )判断两条曲线是否相交。
(! )计算两条曲线的最短距离,并保存计算结果。以@&*)AB为基础,在屏幕上显示计算结果。在此忽略从文件中读取两条曲线的控制顶点及程序进行判断和计算的过程,两条曲线相交的图形如图! 所示。
图! 曲线求交实例
5结论
这里提出一种求解空间曲线交点的有效算法,详细阐述了
图算法的原理和步骤,并通过实例验证算法的快速性和准确性。
0线段相互位置关系
如果! 参考文献
0与! " 方向相反,则进一步判断! ! 与! 5,如果! ! 与! 0孙家广,杨长贵6计算机图形学2C 36北京:清华大学出版社,0DDE65方向相反,则所对应的两条曲线存在相交的可能性,而且交点在由+! " $0/! " /! " 70/! " 7" , 所定义的那段曲线与+-" 施法中6计算机辅助凡何设计与非均匀有理#样条(FGAHI JKL#M)$$0/-$/-$70/-2C 36北京:北京航空航天大学出版社,0DD56
$7" , 所定义的那段曲线上,
所对应的参数区间为2&" /&" 703和2! 胡瑞安6计算机辅助凡何设计2C 36武汉:华中理工大学出版社,0DND6+$/+$703,如图0+8, 所示。如果! ! 与! 5方向相同,则所对应的5吴大任6微分几何讲义2C 36北京:人民教育出版社,
0DOD6
两条曲线没有交点,如图0+:, 所示。如果! 0与! " 方向相同,
则
《机械设计与制造》,GAR #&&’
文章编号:!&&!^X**)$#&&’(&%^&&%%^&#
-6R %/5G=01CFM+C@021_/51BD5GABFC3DD 3
一种快速求取空间任意两条曲线交点的算法
董明晓!" #郑康平#
$! 山东建筑工程学院,济南#%&&!’($#西安交通大学,西安)!&&’*(
!" #$%&’()*+,&’-.(/0$1,("2("%)*3(")3’43/)(&"5&(")&,)6&’#"2&+/.’734("45#/3
+,-./01234056!" #" 789-. :5123;012#
$! 612?1@A0ABAC6D EFG=0ACGABFC51>91201CCF012" H0151#%&&!’($#I0J 51H056A612K10LCF@0AM"I0’51)!&&’*"N=03! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "
15(!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "
【摘要】求空间两条曲线的交点是NE+O NE/重要内容之一,它的准确性与效率直接影响系统的可靠性与实用性。通常是将两条曲线的方程联立求解,或者是对曲线建立包围盒。但上述两种方法计算量较大,甚至求解困难。这里提出一种快速实用的曲线求交算法,具有较高的稳定性和可靠性。该算法分两
!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "
步进行,首先根据P 样条曲线的控制多边形判断两条曲线是否相交,并求出两条曲线存在交点的可能参数区间,然后在此区间内,利用控制顶点算出所对应的曲线段,进行精确求交计算。与常用的包围盒方法相比,该算法效率高、精度易于控制,并通过实例验证算法的有效性。
关键词:曲线求交;算法;P 样条曲线;自由曲线
【!84)’#/)】!"#$%&’()*"+,’(,)-.)-&*"#)-*#(/#0*)’-1’)-*’,*2’,(##3,’(+04(5#/)/’-#’,0(40)$%/*#1/)-NE+O NE//6/*#+78*/$004($06$-.#,,)0)#-06)-,%4#-0#*"#(#%)$9)%)*6$-.1($0*)0$9)%)*6’,*"#/6/*#+7:#-#(;$%%67?4**"#0$%04%$*)-&1(’0#.4(#)/5#(60’+1%#>#/$+1%#/7
9316&’24::")3’43/)(&"&,/.’734;!$%&’()*+;’33=,&’+/.’73中图分类号:SQX*!R)#
文献标识码:E
再建立包围盒,然后重复进行包围盒的求交判断,直到包围盒小于一定尺寸。但上述两种方法计算量较大,甚至求解困难。本文提出一种快速实用的曲线求交算法,算法分两步进行:
$! (首先判断两条曲线是否有可能相交,求出存在交点的可能区间。
$#(在两条曲线存在交点的区间内,计算两条曲线的最短距当&0U01]>0@0! 时,所对应的点即为交点,否则两离U01]>0@,条曲线不相交。
神经网络设计R 北京:机械工业出版社,#&&XR
复旦大学出版社,#张立明R 人工神经网络的模型及其应用R 上海:!**’R西安电子科技大学出版社,X 焦李成R 神经网络的应用与实现R 西安:!**YR
机械工业出版社,’孙靖民R 机械优化设计R 北京:!**%R
李永生,威学成R 梯度法与PQ 神经网络的结合在机械优化设%许崎,
计中的应用R 机械设计与制造工程,#&&#$#(R
Y 飞思科技产品研发中心R /ESZEPYR%辅助神经网络分析与设计R 北京:电子工业出版社,#&&XR
杨汝清,陈亮,袁池R PQ 神经网络在减速器回差数据拟合中) 黄润青,
(%)的应用R 机械与电子,#&&#R
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! "
! 引言
两空间曲线求交计算是NE+O NE/经常遇到的问题,通常的做法是将两曲线的方程联立求解[! \。如果没有解析解,或者解析法计算复杂,可以采用各种近似解,其中一种近似解法是“化为”将曲线直线段的集合,然后求直线段的交点,这个交点就作为曲线求交的近似解。也可以对曲线建立包围盒[! \,当两曲线的包围盒相交时,把曲线分割为两条子线段,对于子线段
%来稿日期:#&&’^&X^&)
‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘‘
性关系转换成了纯粹的数学关系,采用多水平正交表选取样本,设计变量自动搜索寻优计算,弥补了过去在实体结构上只能进行方案式比较优化的缺陷,消除了人为因素的影响。因此利用PQ 神经网络模型进行优化计算要比在有限元模型上容易得多。
(#)利用PQ 网络的自学习功能和分布式处理功能,可以实现传动系统知识的自动获取,但仅靠神经网络还不能完全满足实际复杂系统设计的需求,还应考虑引入其他智能系统来对PQ 网络进行全局的优化设计。
参考文献
(美)! 戴葵等译R /5FA01SR 85251" 86T5F>PR +CUBA="/5FV8R PC5WC 著R
79:7
《机械设计与制造》@
JP6E C8
" 算法原理
所对应的两条曲线没有交点,如图0+; , 和图0+
下面以均匀三次#$%&’()*曲线+开曲线, 为例,说明算法的上述判断原理的算法步骤为:
原理和步骤。
%=*&06分别选取两条曲线控制多边形的其中一条边。给定控制顶点! " ," -./0/…/) ,及控制顶点#$,$-./0/%=*&"6计算! 0和! " ,如果! 0与! " 方向相反,计算! ! 与…/1,则空间两条曲线为2" 32! 3
! 5,
如果! ! 与! 5方向相反,则所对应的两条曲线存在相交的可[
050
.
能性,分别记录所对应的控制顶点+! " $0/! " /! " 70/! " 7" , 、+-$$0/
(%(&’)
)-. 4
0’’" ’! ]$! . . ! () 0+0,
-$/-$70/-$7" , 及参数区间,
以备下一步处理。如果! ! 与! 5方向相$! $! 0! 4$! ! 0
][! (! () " ! 同,则所对应的两条曲线没有交点。如果! () !
]
0与! " 方向相同,则 0
50. 所对应的两条曲线也没有交点。
*((+, )
)-40, , " , ! ]
$ -.
! . !
. ! $4!
. +) " ,
%=*&!6重复上述步骤0和步骤" ,直到遍历两条曲线控制" 多边形的所有边,并分别记录所对应的曲线段的控制顶点和参 $0! $!
-. ) 0-. -. ) !
数区间。
其中. 0’00,(-. ,0,…,/$! ,. 0, 00,. -. ,0,…,0$! 。
经过上述算法处理,既可判断空间两条曲线是否可能相交,"60判断两条曲线是否有可能相交以及存在交点区间
以及交点所位于的曲线段。
由#$%&’()*曲线定义可知,顺序连接控制顶点的折线可组"6" 在两条曲线存在交点的区间内,
计算两条曲线的成#$%&’()*控制多边形。上面两条曲线,对于控制顶点! " ," -最短距离
./0/…1/,其节点矢量2-D &. ,&0,…,&/75E ,曲线定义域&6在两条曲线存在交点可能的参数2+! ,&/70E ,在定义域内不含重节点时,曲线段数为/$" 段,控区间内,利用控制顶点正算出所对应制多边形的边数为/条。对于控制顶点#$,$! ./0/…/0,其节的曲线段,求两条曲线的最短距离。具点矢量342+. ,+0,…,+075E ,曲线定义域+62+! ,+070E ,在定体做法是在其中一条曲线6+&+’, , 上义域内不含重节点时,曲线段数为0$" 段,控制多边形的边数取一点,则这一点到另一条曲线*++为0条。另外,#$%&’()*曲线具有局部支撑性,移动第" 个控+, , , 的最短距离应满足下面的条件制顶点,至多将影响到定义在区间+&图" 两曲线的最短距离
" 1&" 75, 上那部分曲线的形253+如图" 所示, 。
状2032" 3。
判断两条曲线是否有可能相交,可利用控制多边形进行判{*(5, )
・(6(’)7*(, ))4. 6
(5’)・(6(’)7*(, ))4. +! ,
断,如果两条曲线的控制多边形存在相交的可能,则两条曲线上式中*5+, , 和6>+’, 分别为曲线*+++, , , 和6+&+’, , 上也同样存在相交的可能。判断方法如下:首先取两条曲线控制对应点的切矢向量。按照式+! , 分别以b ’和b , 为步长,进行迭多边形的第"5+"5-0,…,/, 边和第$5+$5-0,…,0, 边,两个边代计算,可求出一个最小的距离1()?:(%,当. 01()?:(%0" +" 可的相对位置有四种情况,分别如图0+8, 9+:, 所示。其中" a " 7取为0. $4或更小的值, 时,则说明两条曲线有交点,如果不满0为一曲线控制多边形的其中一条边,$a $70为另一曲线控制足,则两条曲线不相交。
多边形的其中一条边,! 0是+" a " 70, 边到+" a $, 边连线的有向夹角,! ! 算法实例
" 是+" a " 70, 边到+" a $70, 边连线的有向夹角,! ! 是+$a $70, 边到+" a $, 边连线的有向夹角,! 以三次均匀8样条曲线计算为例,验证了上述算法的正确5是+$a $70, 边到+$a " 70, 边连线的有向夹角。规定逆时针方向角为正,顺时针性与有效性,实现步骤如下:
方向角为负,判断规则如下。
(0)从文件中读取曲线控制顶点数据,分别构造两条三次均匀8样条曲线。(" )判断两条曲线是否相交。
(! )计算两条曲线的最短距离,并保存计算结果。以@&*)AB为基础,在屏幕上显示计算结果。在此忽略从文件中读取两条曲线的控制顶点及程序进行判断和计算的过程,两条曲线相交的图形如图! 所示。
图! 曲线求交实例
5结论
这里提出一种求解空间曲线交点的有效算法,详细阐述了
图算法的原理和步骤,并通过实例验证算法的快速性和准确性。
0线段相互位置关系
如果! 参考文献
0与! " 方向相反,则进一步判断! ! 与! 5,如果! ! 与! 0孙家广,杨长贵6计算机图形学2C 36北京:清华大学出版社,0DDE65方向相反,则所对应的两条曲线存在相交的可能性,而且交点在由+! " $0/! " /! " 70/! " 7" , 所定义的那段曲线与+-" 施法中6计算机辅助凡何设计与非均匀有理#样条(FGAHI JKL#M)$$0/-$/-$70/-2C 36北京:北京航空航天大学出版社,0DD56
$7" , 所定义的那段曲线上,
所对应的参数区间为2&" /&" 703和2! 胡瑞安6计算机辅助凡何设计2C 36武汉:华中理工大学出版社,0DND6+$/+$703,如图0+8, 所示。如果! ! 与! 5方向相同,则所对应的5吴大任6微分几何讲义2C 36北京:人民教育出版社,
0DOD6
两条曲线没有交点,如图0+:, 所示。如果! 0与! " 方向相同,
则