CN1717688A - 三角形与线段的交点的计算方法及其程序 - Google Patents

三角形与线段的交点的计算方法及其程序 Download PDF

Info

Publication number
CN1717688A
CN1717688A CNA2003801044914A CN200380104491A CN1717688A CN 1717688 A CN1717688 A CN 1717688A CN A2003801044914 A CNA2003801044914 A CN A2003801044914A CN 200380104491 A CN200380104491 A CN 200380104491A CN 1717688 A CN1717688 A CN 1717688A
Authority
CN
China
Prior art keywords
intersection point
coordinate
triangle
line segment
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2003801044914A
Other languages
English (en)
Inventor
宇佐见修吾
加濑究
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Independent Administrative Institution Physical Chemistry Institute
RIKEN Institute of Physical and Chemical Research
Original Assignee
Independent Administrative Institution Physical Chemistry Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Independent Administrative Institution Physical Chemistry Institute filed Critical Independent Administrative Institution Physical Chemistry Institute
Publication of CN1717688A publication Critical patent/CN1717688A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

计算将P0,P1,P2作为3顶点的三角形与连接A,B的线段的交点的方法。设定将P0作为原点,将P0P1作为第一轴(U轴)的单位长度、将P0P2作为第二轴(V轴)的单位长度、将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R,计算将通常的座标系中的点的座标变换成座标系R的座标值的变换矩阵M,计算线段的两端A,B的u,v,n座标值。另外,根据两端A,B的u,v,n座标值判断有无与三角形的交叉,在交叉的情况下,计算其交点的u,v座标值,从交点的u,v座标值判断有无三角形内的交点。

Description

三角形与线段的交点的计算方法及其程序
发明的背景
发明的技术领域
本发明涉及三角形与线段的交点的计算方法及其程序。
相关技术的说明
用小的存储容量可以存储综合了形状和物理性能的实体数据,因而,将物体的形状、构造、物理信息、履历作一元化管理,可以将有关从设计开始至加工、组装、试验、评价等一连串的工序的数据用相同的数据进行管理,作为能够将CAD和模拟一元化的实体数据的存储方法,公开在[专利文献1]中。
[专利文献1]
特开2002-230054号公报
如图1所示,[专利文献1]的「综合了形状和物理性能的实体数据的存储方法」由外部数据输入步骤(A)、八叉树(octree)分割步骤(B)、以及单元数据存储步骤(C)构成,在外部数据输入步骤(A)中,将由用外部数据取得步骤S1取得的目标物的边界数据构成的外部数据12输入至存有本发明的方法的计算机等中,在八叉树分割步骤(B)中,用八叉树分割将外部数据12分割成边界平面成正交的长方体的单元,在单元数据存储步骤(C)中,在每个单元上存储各种物理性能值。
上述的[专利文献1]的发明中,用八叉树分割将由目标物的形状数据构成的外部数据分割成边界平面成正交的长方体的单元,每个单元上存储各种物理性能值。被分割的各单元由位于目标物内侧的内部单元和包含边界面的边界单元构成。另外,作为属性,内部单元具有1种物理性能值,边界单元具有目标物的内侧与外侧的2种物理性能值。
以下,将用本方法产生的数据称为「V-CAD数据」,使用这个数据的设计或模拟称为「体积CAD」或「V-CAD」。在图1中,14是V-CAD数据。
图2是表示根据[专利文献1]由外部数据作成V-CAD数据的步骤的图。如该图所示,对于S-CAD数据和三角形缀片数据,在步骤1中定义体素(voxel)空间,在步骤2中进行几何形状与各单元的棱线的交点计算(单元切断点的取得),在步骤3中,由每个单元的切断点信息作成单元内面的外周环,在步骤4中,一边参照原来的几何形状一边将外周环内作三角形分割,在步骤5中,通过设定单元的媒质值作成V-CAD数据。
在上述的[专利文献1]的方法中,在图1的八叉树分割步骤(B)以及图2的步骤2中,重复求出定义外部数据即几何形状的三角形与各单元的棱线即线段的交点的计算,产生庞大次数的计算。
作为这样的三角形与线段的交点计算方法,一直以来,知道有[非专利文献1]~[非专利文献3]。
[非专利文献1]
Moller的方法(Journal of graphicstools,2(1):21-28 1997)。
[非专利文献2]
Badouel的方法(Graphic Gems,Academic PressP21-28 1990)。
[非专利文献3]
Computational Geometry in C:Joseph O′Rourke/CambridgeUniversity Press P239)
关于三角形与线段的交点计算,存在有各式各样的方法,其多数是计算无限平面与无限直线的交点,是判断其交点是否包含在作为平面内的闭区域的三角形内的方法。那样的方法计算成本高,如所推断的那样,今后在V-CAD系统中需要有对重复进行许多次计算进行改善的策略。
在[非专利文献1]的Moller的方法中,通过利用[数学式2]的式(1)的矢量计算式可以用比较低的成本计算。
[数学式2]
t u v = ( P 1 P Lin → × P 1 P 2 → ) · P 1 P 3 → ( V Dir × P 1 P 3 → ) · P 1 P Lin → ( P 1 P Lin → × P 1 P 2 → ) · P 1 P Lin → / ( ( V Dir × P 1 P 3 → ) · P 1 P 2 → ) · · · ( 1 )
P1、P2、P3、PLin:三角形的顶点、线段的始点
VDir    :线段的方向矢量
t       :在线段中的参数
u,v    :在三角形内的参数
但是,在这个方法中,在对于同样的三角形求与不同的多个线段的交点时也需要改变全部的计算式来计算,所以,在所谓「同样的三角形」的条件下不发生交点计算的优点,存在着所谓谋求高速化困难的问题。
在[非专利文献2]的Badouel的方法中,如图3所示,利用平面的基准点PPin和法线矢量VNrm、直线的基准点PLin按以下方法求出。
作为[数学式3]的式(2),由于直线的基准点与平面的距离可以用dst=VNrm·VPnt(VNrm为单位矢量)求得,所以,交点的座标可以用PInt=PLin+VLin·dst/(VLin·VNrm)计算。
接着,将三角形的各顶点以及平面和直线的交点投影在座标平面(xy平面、yz平面、zx平面)的任一平面上,在该平面上,计算构成[数学式3]的式(3)的α、β。
α、β的计算方法,如图4所示,当投影在xy平面上的情况下,作为P1(x1,y1,z1)、P2(x2,y2,z2)、P3(x3,y3,z3)、PInt(x,y,z),也可以作成省略各顶点的Z座标后的一次变换式([数学式3]的式4)的逆变换。
[数学式3]
V Pnt = P Pin P Lin → · · · ( 2 )
P 1 , P Int , → = α P 1 , P 2 , → + P 1 , P 3 , → · · · ( 3 )
x y = x 2 - x 1 x 3 - x 1 y 2 - y 1 y 3 - y 1 α β · · · ( 4 )
无限平面与直线的交点计算的方法与用Badouel的方法描述的内容相同,而在交点与三角形的内外判定方法中,另外也可以举出以下的方法。
在计算[非专利文献3]的角度的方法中,对于图5A和图5B,分别取向着各自顶点的矢量相互间的内积,根据从它求出的角度的和是构成0或360度进行判断。亦即,在图5A中,式(5)成立,在图5(B)中,式(6)成立。
θ122331=2PI···(5)
θ122331=0···(6)
其它,如图6A和图6B所示,用[数学式4]的式(7)求出从交点向三角形上各顶点的矢量的外积,这些,也是利用以是否朝向相同方向判断的外积的方法。
[数学式4]
VNrm12=V1×V2
VNrm23=V2×V3···(7)
VNrm31=V3×V1
在图6A中,VNrm12、VNrm23、VNrm31都朝向同一方向,在图6B中,VNrm31朝向相反方向。
但是,预料在利用外积的方法中,计算量显然会加重。
如上所述,在以往的三角形与线段的交点计算手段中,在求对于相同的三角形与不同的线段的交点的时候,由于每次几乎都需要改变全部的计算式来计算,整体的计算时间增长存在着难以实现高速化的问题。
                    发明概要
本发明是为了解决这样的问题而作的发明。也就是说,本发明的目的在于,在对于相同的三角形求与不同的多个线段的交点的时候,提供可以缩短计算时间,谋求高速化的三角形与线段的交点计算方法及其程序。
依据本发明,在计算以P0,P1,P2为顶点的三角形与连接A,B的线段的交点的方法中,提供了三角形与线段的交点计算方法,其特征在于,设有:设定将P0作为原点、将P0P1作为第一轴(U轴)的单位长度、将P0P2作为第二轴(V轴)的单位长度、将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R的座标系设定步骤(A);计算将通常的座标系中的点的座标变换成座标系R的座标值的变换矩阵M的变换矩阵计算步骤(B);计算线段的两端A,B的u,v,n座标值的线段端座标计算步骤(C);从两端A,B的u,v,n座标值判断有无与三角形交叉的交叉判断步骤(D);在交叉的情况下,计算该交点的u,v座标值的交点座标计算步骤(E);从交点的u,v座标值判断有无三角形内的交点的交点判断步骤(F)。
另外,依据本发明,向计算机提供用以执行下列功能步骤的程序,该程序是用以计算将P0,P1,P2作为3顶点的三角形与连接A,B的线段的交点的程序,所述的功能步骤是:设定将P0作为原点、将P0P1作为第一轴(U轴)的单位长度、将P0P2作为第二轴(V轴)的单位长度、将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R的座标系设定步骤(A);计算将通常的座标系中的点变换成座标系R的座标值的变换矩阵M的变换矩阵计算步骤(B);计算线段的两端A,B的u,v,n座标值的线段端座标计算步骤(C);从两端A,B的u,v,n座标值判断有无与三角形的交叉的交叉判断步骤(D);在交叉的情况下,计算该交点的u,v座标值的交点座标计算步骤(E);从交点的u,v座标值判断有无三角形内的交点的交点判断步骤(F)。
依据上述的本发明的方法和程序,在对于同样的三角形求与不同的多个线段的交点的时候,对于同样的三角形的变换矩阵M通常是相同的,对于不同的多个线段,仅执行线段端座标计算步骤(C),可以计算线段的两端A,B的u,v,n座标值。因而,比起传统方法能够减少对不同线段的再计算,可以缩短计算时间,谋求高速化。
依据本发明的优选实施例,在上述变换矩阵计算步骤(B)中,变换矩阵M是Affine变换矩阵。
使用Affine变换矩阵,可以在短时间内容易地对于三角形计算变换矩阵M。
另外,在线段端座标计算步骤(C)中,用式(8)求出u,v,n座标值,
PUVN=MPxyz···(8)
利用(8)式,对于不同的多个线段,可以在短时间内容易地计算线段的两端A,B的u,v,n座标值。
另外,在交叉判断步骤(D)中,(1)如果一个点的n座标超过线段的长度,则判断为无交点,以及/或者(2)如果2点的n座标是同号,则判断为无交点,如果是异号,则判断为有交点,
利用这个判断,可以容易且在短时间内判断交点的有无。
另外,在交叉判断步骤(D)中,在(1)2点都是u座标在0以下或1以上,(2)2点都是v座标在0以下,或(3)2点都是u座标+v座标在1以上的情况,判断为交点在三角形以外。
利用这个手段,可以容易且在短时间内进行能构成交点的点与三角形之间的内外判定,在求出实际的交点以前,明确地将三角形内不具有交点的线段排除在外,可以省略不必要的计算。
另外,在交点座标计算步骤(E)中,将用两端A,B的n座标的值内分的点作为交点,计算其u,v座标值。
利用这个手段,可以容易且在短时间内计算交点的u,v座标值。
另外,在交点判断步骤(F)中,当交点的u,v座标值满足[数学式1]的式(13)时,判断为在三角形的内部。
用这个手段,可以容易且在短时间内进行交点与三角形的内外判定,在求出实际的交点以前,将三角形内不具有交点的线段排除在外,可以省略不必要的计算。
本发明的其它目的及有利的特征,从参照附图的以下说明中可清晰了解。
                  附图的简单说明
图1是在先申请的实体数据的存储方法的流程图。
图2是在先申请的实体数据的存储方法的另一流程图。
图3是表示传统方法的模式图。
图4是表示传统方法的另一模式图。
图5A和图5B是表示传统方法的另一模式图。
图6A和图6B是表示传统方法的另一模式图。
图7是用以执行本发明的方法的装置的构成图。
图8是本发明的方法及其程序的流程图。
图9是表示由本发明产生的座标系R的模式图。
图10是具体表示由本发明产生的处理方法的流程图。
图11是表示本发明的第1实施例的流程图。
图12是表示输入三角形显示的图像。
图13是表示由单元和单元内面所构成的V-CAD数据的图像。
图14是表示由输入数据和单元棱线的交点计算发生的单元切断点的图像。
图15是表示本发明的第2实施例的流程图。
图16是表示形状变换处理后的V-CAD数据的图像。
                   优选实施例说明
下面,参照附图说明本发明的优选实施例。
图7是用以执行本发明的方法的装置构成图。如该图所示,这个装置10设有输入装置2、外部存储装置3、内部存储装置4、中央处理装置5和输出装置6。
输入装置2是例如键盘,输入由目标物1的形状数据构成的外部数据12。外部存储装置3是硬盘、软盘、磁带、微型光盘等,存储综合了形状和物理量的实体数据及其存储计算程序。内部存储装置4是例如RAM,ROM等,保存计算信息。中央处理装置5(CPU)集中地处理计算和输入输出等,与内部存储装置4一起执行存储程序。输出装置6是例如显示器和打印机,输出已存储的实体数据和存储程序的执行结果。
图8是本发明的交点计算方法及其程序的流程图。如该图所示,本发明的交点计算方法及其程序由座标系设定步骤(A)、变换矩阵计算步骤(B)、线段端座标计算步骤(C)、交叉判断步骤(D)、交点座标计算步骤(E)、以及交点判断步骤(F)构成。
本发明的交点计算方法是计算将P0,P1,P2作为3顶点的三角形与连接A,B的线段的交点的计算方法,本发明和程序是用以在计算机上使其计算以P0,P1,P2作为3顶点的三角形与连接A,B的线段的交点的程序。
在座标系设定步骤(A)中,设定将P0作为原点、将P0P1作为第一轴(U轴)的单位长度、将P0P2作为第二轴(V轴)的单位长度、将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R。
在变换矩阵计算步骤(B)中,计算将通常座标系中的点的座标变换成座标系R的座标值的变换矩阵M。
在线段端座标计算步骤(C)中,计算线段的两端A,B的u,v,n座标值。
在交叉判断步骤(D)中,根据两端A,B的u,v,n座标值判断有无与三角形的交叉。
在交点座标计算步骤(E)中,计算在交叉的情况下该交点的u,v座标值。在交点判断步骤(F)中,根据交点的u,v座标值判断有无三角形内的交点。
下面,详细说明本发明。
1.在体积CAD的开发中,重复进行多用于作为输入的表面形状的三角形缀片(triangle batch)与线段(单元棱线)的交点计算。三角形与线段的交点计算是在平面与直线的交点计算后,进行是在直线上的有效区域还是在平面上的有效区域的内外判定,由于多用矢量计算,计算量增大。例如,对于输入的三角形缀片群是1种的情况,在变换成V-CAD等的体积数据(表现三维的扩展整体的数据、CT或MRI、体积渲染用的数据等)时,在变更分割数和分辨率或变换成具有Octree化、多重体素化等的层次性的网格数据的情况下,对于1个表面数据,构成同时或重复大量地进行与网格的棱线的交点计算。因而,在下述的现有技术中效率低下,需要可以大幅度达到高效的方法。另外,并不限于体积CAD,根据信息量之丰富预计今后体积数据会广泛流通,但即使在这样的情况下,从处理或控制的容易性考虑,还是需要将三角形缀片和体积数据并用,而这时本发明的技术是不可缺少的。
在本发明中,通过预先将输入数据变换成一般被用于计算机上的形状显示等的Affine变换矩阵,可以高速且稳定进行交点计算和内外判定。特别是对于同样的三角形,在进行重复的交点计算时,通过再利用以前作成的三角形固有的矩阵,可以大幅度降低计算成本。例如,在机械零作等情况下,由平面构成的面多,作为输入的表面形状所使用的三角形中大的非常多。其结果,由于多次进行同样的三角形与单元棱线的交点计算,本发明的优点是显著的。
2.在本发明中,如图9所示,将三角形的2边作为第一轴、第二轴,将法线矢量作为第三轴,设定将第一轴和第二轴共同的顶点作为原点的空间座标系R。
为了进行正规直角坐标系与上述座标系的变换,计算被用于在计算机上的图像显示等的Affine变换矩阵与三角形相对应。
利用上述矩阵将进行交点计算的线段的两端的座标变换成空间座标系R,从它们的值进行交点的有无或相对于交点的三角形的内外判定,以及交点的座标计算。
通过使有用上述的手段,产生以下的优点。
(1)将已有的手段中用两个阶段进行的交点的计算和内外判定变成用一个阶段进行,不必增加存储容量,可以高速计算。
(2)对于同样的三角形,在进行与多个线段的交点计算时,通过利用预先准备的几何量而降低计算成本。
(3)由于是所谓座标变换与点的内分的简易算法,所以,安装容易。
(4)由于座标变换的结果上包含带符号的距离,可以用于作为体积数据的属性数据的原曲面的距离的计算和面的正反方向的确认。
3.图10是具体地表示由本发明得到的处理方法的流程图。该图中,输入将P0,P1,P2作为3顶点的输入三角形的3维座标数据,因此,在上述的座标系设定步骤(A)中,设定将P0作为原点,将P0P1作为第一轴(U轴)的单位长度,将P0P2作为第二轴(V轴)的单位长度,将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R。
接着,在S1中,算出对应于根据三角形的座标系R的矩阵。这一步骤相当于上述的变换
矩阵计算步骤(B)。
然后,在S2步骤中,将交叉计算目标线段的两端A,B的uv座标、带符号距离用Affine变换计算求出。这一步骤相当于上述的线段端座标计算步骤(C)。
然后,在S3步骤中,根据带符号距离和uv座标判断有无与三角形的交叉。这一步骤相当于上述的交叉判断步骤(D)。
然后,在S4步骤中,计算交点。这一步骤相当于上述的交点座标计算步骤(E)。
然后,在S5步骤中,从UV值判断有无三角形内的交点。这一步骤相当于上述的交点判断步骤(F)。
4.1下面,说明计算流程的详情。
4.1.1与相应于三角形的座标系相对应的矩阵
如图9所示,在将三角形的顶点作为P0,P1,P2时,考虑将P0作为原点、将P0P1作为第一轴(U轴)的单位长度,将P0P2作为第二轴(V轴)的单位长度、将P0P1×P0P2的单位矢量作为第三轴(N轴)那样的座标系R。
如果将通常的直角坐标系中的点的座标变换成这个座标中的座标值的矩阵作为M,则用下式
PUVN=MPxyz…(8)变换后的座标值作为各自的u,v,n座标,计算由三角形确定的座标表面上的UV值和距三角形的带符号距离。
因此,可以计算相对于任意的点的三角形的位置关系(带符号的距离、是否可以在三角形上垂直投影)等,另外,对于同样的三角形,当进行多次的交点计算时,由于可以将矩阵原封不动地利用,所以,可以减小计算量。其结果,可进行更高速的交点计算。
由于该变换矩阵包含比例、旋转、座标轴的变形、平行移动,使用称为被用于4×4的通常用于CG显示等的Affine变换的变换矩阵。
关于比例矩阵、平行移动矩阵,将各轴方向的缩小比例设为xScale,yScale,zScale,将平行移动矢量设为(xMove,yMove,zMove),可以如[数学式5]的式(9)(10)那样表示。
另外,关于旋转和座标轴变形的矩阵,由于在uvn座标系中的各轴方向的单位矢量分别构成为Vec1,Vec2,VecN,将各矢量的分量取为(vx1,vy1,vz1),(vx2,vy2,vz2),(vxn,vyn,vzn),可以如[数学式4]的式(11)那样表达。将这些综合,计算得到|数学式5]的式(12)。
[数学式5]
M scale = xScale 0 0 0 0 yScale 0 0 0 0 zScale 0 0 0 0 1 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 · · · ( 9 )
M move = 1 0 0 xMove 0 1 0 yMove 0 0 1 zMove 0 0 0 1 = 1 0 0 - x 0 0 1 0 - y 0 0 0 1 - z 0 0 0 0 1 · · · ( 10 )
M trans = vx 1 vy 1 vz 1 0 vx 2 vy 2 vz 2 0 vxn vyn vzn 0 0 0 0 1 - 1 · · · ( 11 )
M=Mmove·Mscale·Mtrans···(12)
4.1.2直线的两端点的座标变换(带符号的距离、uv座标的算出)
将始点、终点的座标用上述的矩阵进行Affine变换。
但是,在Affine变换的4×4矩阵中,由于第1行~第3行的第4列是移动量,相乘的目标必须是1,另外,对于第4行,由于第1~第3列是0,第4列是1,第4列的相乘的目标是1,计算结果必然为1。因而,如果不是进行通用的矩阵计算用的计算,而是进行Affine变换专用的计算,则只需要相乘第1~第3行、第1~第3列的9次即可完成,可以实现更高速的计算。
4.1.3观察变换后的2点的座标,判断有无交点。
·如果一个点的n座标超过线段的长度,则无交点。
·如果2点的n座标为同号,则无交点,如果是异号,则有交点。
4.1.4根据变换后的2点的u座标,v座标,进行能构成交点的点与三角形的内外判定。
·2点的u座标都在0以下或1.0以上时,交点在三角形外
·2点的v座标都在0.0以下时,交点在三角形外
·2点的u座标+v座标都在1.0以上时,交点在三角形外以上述的条件为基础,在求出实际的交点的值以前,明确将在三角形上没有交点的线段除外。
4.1.5以用两端的n座标的值内分的点作为交点,求出uv座标。
4.1.6将交点的u座标、v座标按以下的基准进行与三角形的内外判定。
处于三角形的内部的条件为示于[数学式6]的式(13)的3项。
[数学式6]
·0≤u≤1     (Vec1方向的范围)
·0≤v≤1     (Vec2方向的范围)···(13)
·0≤u+v≤1   (P1P2线的内侧(P0侧))
4.2计算成本与计算结果
比较Moller的方法与本发明的计算成本。
首先,在Moller的方法中,由于[数学式7]的式(14)每回用2次,预先作为各自的矢量P、Q计算,另外,进行除法的部分也预先用[数学式7]的式(15)计算倒数。
这时,矢量P的计算成本是乘法6次,矢量Q的计算成本是乘法6次,直至求出t的计算成本是各自的矢量与再一次的矢量的内积计算、是倒数计算和与倒数的相乘,乘法为19次,除法为1次。
为了求出u,这里,增加4次乘法,v的计算中也需4次乘法。
对此,在本发明的情况下,在求出两端的带符号距离和uv值之前,需要作18次乘法。如果两端的带符号距离是同号,则是与t<0或t>1同值,由于知道在线段的有效范围内无交点,这时,节约了乘法1次和除法1次的计算成本。
为了求出交点的uv值,由于需要作[数学式7]的式(16)的计算,在求出u值之前,需作1次除法和2次乘法,在求出v值之前需再作2次乘法。但是,在始点、终点的U值、V值均小于0,或1以上,或在U值+V值1以上的情况下,可不进行交点的U值、V值的计算而进行无交叉的判定。
[数学式7]
Figure A20038010449100171
t u v = ( P 1 P Lin → × P 1 P 2 → ) · P 1 P 3 → ( V Dir × P 1 P 3 → ) · P 1 P Lin → ( P 1 P Lin → × P 1 P 2 → ) · P 1 P Lin → / ( ( V Dir × P 1 P 3 → ) · P 1 P 2 → ) · · · ( 15 )
t=fabs(NP1/(NP2-NP1))
UInt=UP0×t+UP1×(1-t)···(16)
VInt=VP0×t+VP1×(1-t)
因而,作为交点计算的步骤,执行下列步骤:
步骤1在线段的有效区间的交叉确认(t值)
步骤2用交点的u值的有效/无效判定
步骤3用交点的v值的有效/无效判定至进行在各条件下的交叉为止,可知表1所示的计算成本费,即本发明具有高计算效率。
[表1]
    步骤     Moller的方法     本方法
    步骤1t值     19乘+1除     18乘
    步骤2u值     23乘+1除     20乘+1除(18乘)
    步骤3v值     27乘+1除     22乘+1除(18乘)
4.3实施例
4.3.1实施例1
图11表示从外部数据的取得至V-CAD数据作成的流程。在图11中,在进行上述的交点计算之前,将几何形状(S-CAD数据、三角形缀片)映射到各单元的处理。通过这个处理,由于可以挤入交叉目标线段(单元的棱线)的候补,因而缩短计算时间,可以谋求高速化。在不进行映射处理时,必须检索全部的线段,由于花费计算时间,最好如本实施例在交点计算前进行映射处理。
图12~14表示作了图11的处理时的显示画面。也就是,图12是步骤(T2)中输入的三角形的显示画面,图13是步骤(T13)中所作成的V-CAD数据的显示图像。图14是将图13的一部分放大后的图像,显示由输入数据与棱线的交点计算产生的单元的切断点。
依据本发明,用基准测试程序测定可以达到最大30%左右的高速化。
4.3.2实施例2
图15是将本发明的方法应用于形状变形处理时的干涉检查时的流程图。在步骤(U4)中,作为进行图11的一连串处理前的前处理,进行交点计算(从图11的步骤(T5)至(T11)的处理),进行了自干涉检查。然后,通过进行图11的一连串的处理(相当于步骤(U5)),可以显示变形后的形状。图16表示其显示图像。
4.3.3
如上所述,本发明的三角形与线段的交点计算方法及其程序,在对于同样的三角形求与不同的多个线段的交点时,具有缩短计算时间,可以谋求高速化等优点的效果。
再者,用几个优选实施例说明了本发明,但本发明的权利要求范围被理解为不受这些实施例的限制。相反,本发明的权利要求范围应包含在所附的权利要求书所涵盖的全部改进、修正及其等效物。

Claims (8)

1.一种三角形与线段的交点计算方法,其特征在于:
在计算将P0,P1,P2作为3顶点的三角形与连接A,B的线段的交点的方法中包括,
设定将P0作为原点、将P0P1作为第一轴(U轴)的单位长度、将P0P2作为第二轴(V轴)的单位长度、将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R的座标系设定步骤(A);
计算将通常的座标系中的点的座标变换成座标系R的座标值的变换矩阵M的变换矩阵计算步骤(B);
计算线段两端A,B的u,v,n座标值的线段端座标计算步骤(C);
根据两端A,B的u,v,n座标值判断有无与三角形的交叉的交叉判断步骤(D);
在交叉的情况下,计算该交点的u,v座标值的交点座标计算步骤(E);以及
从交点的u,v座标值判断有无三角形内的交点的交点判断步骤(F)。
2.如权利要求1所述的三角形与线段的交点计算方法,其特征在于:在所述变换矩阵计算步骤(B)中,变换矩阵M是Affine变换矩阵。
3.如权利要求1所述的三角形与线段的交点计算方法,其特征在于:在线段端座标计算步骤(C)中,用式(8)求出u,v,n座标值,
PUVN=MPxyz …(8)
4.如权利要求1所述的三角形与线段的交点计算方法,其特征在于:在交叉判断步骤(D)中,(1)若一个点的n座标超过线段的长度,则判断为无交点,以及/或者(2)若2点的n座标同号,则无交点,若为异号,则判断为有交点。
5.如权利要求1所述的三角形与线段的交点计算方法,其特征在于:在交叉判断步骤(D)中,在以下情况下,(1)2点的u座标均为0以下或1以上,(2)2点的v座标均为0以下,或(3)2点的u座标+v座标均为1以上时,判断为交点在三角形外。
6.如权利要求1所述的三角形与线段的交点计算方法,其特征在于:在交点座标计算步骤(E)中,将用两端A,B的n座标的值内分的点作为交点,计算其u,v座标值。
7.如权利要求1所述的三角形与线段的交点计算方法,其特征在于:在交点判断步骤中(F)中,交点的u,v座标值满足于[数学式1]的式(13)时,判断为在三角形内部,
[数学式1]
·0≤u≤1(Vec1方向的范围)
·0≤v≤1(Vec2方向的范围)                   …(13)
·0≤u+v≤1(P1P2的线的内侧(P0侧))
8.一种用以使计算机计算将P0,P1,P2作为3顶点的三角形与连接A,B的线段的交点的程序,其特征在于使下列步骤执行:
设定将P0作为原点,将P0P1作为第一轴(U轴)的单位长度,将P1P2作为第二轴(V轴)的单位长度,将P0P1×P0P2的单位矢量作为第三轴(N轴)的座标系R的座标系设定步骤(A);
计算将通常的座标系中的点的座标变换成座标系R的座标值的变换矩阵M的变换矩阵计算步骤(B);
计算线段的两端A,B的u,v,n座标值的线段端座标计算步骤(C);
根据两端A,B的u,v,n座标值判断是否有与三角形的交叉的交叉判断步骤(D);以及
在交叉的情况下,计算该交点的u,v座标值的交点座标计算步骤(E);
根据交点的u,v座标值判断有无三角形内的交点的交点判断步骤(F)。
CNA2003801044914A 2002-12-06 2003-12-05 三角形与线段的交点的计算方法及其程序 Pending CN1717688A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP354594/2002 2002-12-06
JP2002354594 2002-12-06

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2011100648843A Division CN102156773A (zh) 2002-12-06 2003-12-05 综合了形状和物理性能的实体数据的存储方法

Publications (1)

Publication Number Publication Date
CN1717688A true CN1717688A (zh) 2006-01-04

Family

ID=32500764

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2003801044914A Pending CN1717688A (zh) 2002-12-06 2003-12-05 三角形与线段的交点的计算方法及其程序
CN2011100648843A Pending CN102156773A (zh) 2002-12-06 2003-12-05 综合了形状和物理性能的实体数据的存储方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2011100648843A Pending CN102156773A (zh) 2002-12-06 2003-12-05 综合了形状和物理性能的实体数据的存储方法

Country Status (5)

Country Link
US (1) US7187390B2 (zh)
EP (1) EP1569143A4 (zh)
JP (1) JP4526121B2 (zh)
CN (2) CN1717688A (zh)
WO (1) WO2004053741A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1574988B1 (en) * 2004-03-08 2014-06-18 Siemens Product Lifecycle Management Software Inc. Determining and using geometric feature data
JP2006107093A (ja) * 2004-10-05 2006-04-20 Konica Minolta Medical & Graphic Inc 画像処理装置、およびプログラム
US7555163B2 (en) * 2004-12-16 2009-06-30 Sony Corporation Systems and methods for representing signed distance functions
WO2009004676A1 (ja) * 2007-06-29 2009-01-08 Fujitsu Limited 判定プログラム、判定装置、判定方法
CN101872470B (zh) * 2010-05-30 2011-12-28 李滨 一种ct或mri图像的矫正和靶点定位方法
KR101705072B1 (ko) * 2010-09-28 2017-02-09 삼성전자주식회사 영상 처리 장치 및 방법
JP6074318B2 (ja) * 2013-05-27 2017-02-01 株式会社ア−キテック Cadシステム
CN114101825B (zh) * 2021-12-08 2023-02-10 通用技术集团机床工程研究院有限公司 一种基于电火花成形机的多边形工件找中方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4953094A (en) * 1988-07-01 1990-08-28 Aerohydro, Inc. Method for lofting blanks and compounding plates for shell structures
EP0514688A2 (en) * 1991-05-21 1992-11-25 International Business Machines Corporation Generalized shape autocorrelation for shape acquisition and recognition
US6862023B1 (en) * 1995-08-18 2005-03-01 Mohammad Salim Shaikh Fully integrated machinable profile based parametric solid modeler
US6300958B1 (en) * 1998-07-17 2001-10-09 T-Surf Corp. Global constrained parameterization of triangulated surfaces
US6633789B1 (en) * 2000-02-17 2003-10-14 Align Technology, Inc. Effiicient data representation of teeth model
WO2001074268A1 (en) * 2000-03-30 2001-10-11 Align Technology, Inc. System and method for separating three-dimensional models
US6677957B2 (en) * 2001-01-09 2004-01-13 Intel Corporation Hardware-accelerated visualization of surface light fields
US6636232B2 (en) * 2001-01-12 2003-10-21 Hewlett-Packard Development Company, L.P. Polygon anti-aliasing with any number of samples on an irregular sample grid using a hierarchical tiler
JP3468464B2 (ja) 2001-02-01 2003-11-17 理化学研究所 形状と物性を統合したボリュームデータ生成方法
US7133044B2 (en) * 2001-05-15 2006-11-07 Autodesk, Inc. System of feature-based surface mapping
US7212205B2 (en) * 2002-11-12 2007-05-01 Matsushita Electric Industrial Co., Ltd. Curved surface image processing apparatus and curved surface image processing method

Also Published As

Publication number Publication date
JPWO2004053741A1 (ja) 2006-04-13
EP1569143A4 (en) 2009-08-12
US20050283513A1 (en) 2005-12-22
WO2004053741A1 (ja) 2004-06-24
US7187390B2 (en) 2007-03-06
CN102156773A (zh) 2011-08-17
EP1569143A1 (en) 2005-08-31
JP4526121B2 (ja) 2010-08-18

Similar Documents

Publication Publication Date Title
CN1211748C (zh) 用于结构分析的设备和方法
CN1268894C (zh) 测量技术及计算机数控技术
CN1138219C (zh) 自适应非线性投影绘制方法和装置
US7590512B2 (en) System and method for deformation analysis using inverse pre-deformation of finite element mesh
CN1871622A (zh) 图像比较系统和图像比较方法
CN101052352A (zh) 图像诊断处理设备和图像诊断处理程序
CN1695151A (zh) 计算机辅助设计系统和程序
US20070165948A1 (en) Mesh models with internal discrete elements
CN1551048A (zh) 图像再现装置和图像再现方法
CN1834582A (zh) 图像处理方法、三维位置测量方法以及图像处理装置
CN1628324A (zh) 检测缺陷的方法和系统
CN101052997A (zh) 逼近可编辑曲面的系统和方法
US20100271371A1 (en) Data processing device and method for converting coordinates of a curved surface
CN1734503A (zh) 使用光谱分析的伸展驱动的网格参数化
CN1501324A (zh) 于匀相空间中进行三角形插补工作的方法及其可程序装置
CN1717688A (zh) 三角形与线段的交点的计算方法及其程序
CN1465036A (zh) 信息处理装置
CN1784683A (zh) 多媒体数据的识别方法及其程序
TW202213166A (zh) 用於生成用於電子設計之形狀資料之方法及系統
CN1378179A (zh) 图案评价方法,图案评价装置和计算机读取的记录媒体
Li et al. Section curve reconstruction and mean-camber curve extraction of a point-sampled blade surface
Reinhart Industrial computer tomography–A universal inspection tool
CN1942901A (zh) 图像处理装置及图像处理方法
CN1609861A (zh) 有向无尺度对象关系模型
CN1261964A (zh) 数控装置用加工程序的文件变换装置及存储有为计算机执行文件变换过程的程序的计算机可读式记录媒体

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20060104