CN1624721A - 线段裁剪方法以及使用其显示三维图像的方法 - Google Patents
线段裁剪方法以及使用其显示三维图像的方法 Download PDFInfo
- Publication number
- CN1624721A CN1624721A CN200410091695.5A CN200410091695A CN1624721A CN 1624721 A CN1624721 A CN 1624721A CN 200410091695 A CN200410091695 A CN 200410091695A CN 1624721 A CN1624721 A CN 1624721A
- Authority
- CN
- China
- Prior art keywords
- node
- dimensional
- line segment
- present
- viewing volume
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/30—Clipping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Instructional Devices (AREA)
Abstract
本发明提供了线段裁剪方法以及使用其显示三维图像的方法。在投影中心位置和投影平面之间形成裁剪平面,以使裁剪平面平行于投影平面。在裁剪平面处裁剪三维线段。通过将节点的z轴值与相对于投影中心位置的裁剪平面的z轴值进行比较,确定构成待投影到投影平面上的三维图像中的三维线段的各个节点是存在于视见体内还是视见体外。如果三维线段的节点既存在于视见体内也存在于视见体外,则使用存在于视见体内的节点以及当前三维线段和裁剪平面之间的交点,或仅使用存在于视见体内的节点构造新的三维线段。
Description
技术领域
本发明涉及一种线段裁剪(line clipping)方法,用于在三维线段显示在三维导航系统或三维游戏中的显示板的屏幕上时,从某一三维图像(例如三维地图等)中的带有节点(node)和连线(link)结构的三维线段去除不必要的连线;以及一种使用线段裁剪显示三维图像的方法(使用线段裁减的三维图像显示方法),其中通过使用线段裁剪方法裁剪三维图像的三维线段,将三维图像显示在屏幕上。
背景技术
传统的三维图形处理方法包括用于裁剪三维图像不打算显示在屏幕上的部分的裁剪方法。例如,如图1中所示,当该三维图像从作为视点(view point)的投影中心位置100观看时,该裁剪将去除位于视见体(view volume)120边界外的三维图像的部分上的数据,同时将位于视见体120的边界内(即包括投影平面110和视见体120的上侧、下侧、左侧、右侧和后侧的六个面内)的三维图像的部分上的数据投影到投影平面110上。这用于减少处理三维图像所需要的数据量,从而减少计算量和提高处理速度。
另外,当将三维线段投影到投影平面上时,将存在于投影中心位置100后面的三维线段的节点反向投影在与预期相反的相对方向上。因此,应通过线段裁剪去除它们。即,如图2a中所示,如果将存在于从投影中心位置200观看的视见体210的边界内的三维线段220投影到投影平面230上,则被投影为在投影平面230上的二维线段240。然而,如图2b中所示,如果三维线段220的、坐标为(x,y,z)的一个边节点存在于投影中心位置200后面,则该节点的坐标(x,y,z)在投影平面230上投影为投影坐标(xp,yp),导致错误发生,从而三维线段220在投影平面230上投影为不准确的二维线段240a。
图3示出发生这种错误的真实实例。从图中可看到,道路和水流在屏幕上显示的三维地图上不准确地显示为漂浮状态。
图4示出线段裁剪和投影的实际原理的图示,其中通过从投影平面400裁剪去除存在于投影平面400外(即视见体外)的三维线段410的连线,将仅存在于投影平面400内(即,从投影中心位置420观看的视见体内)的节点投影到投影平面400上。这用于计算三维线段410和投影平面400之间的交点坐标,并产生具有新结构的三维线段,所述新结构由所计算的交点坐标和存在于投影平面400内的节点坐标组成。
例如,获得投影平面400和三维线段410之间的交点nv1、nv2、和nv3,其中三维线段410具有由v0、v1、v2、v3、和v4组成的连接节点和连线,并去除存在于视见体外的节点v0和v3,从而转换为具有由六个节点nv1、v1、v2、nv2、nv3、和nv4组成的新结构。
在传统的线段裁剪中,在六个侧(即投影平面和视见体的上侧、下侧、左侧、右侧、和后侧)执行线段裁剪。例如,如图5中所示,对于由七个节点v0、v1、v2、v3、v4、v5、和v6组成的三维线段500,计算在三维线段500和六个侧(包括投影平面520和从投影中心位置510观看的视见体530的上侧、下侧、左侧、右侧、和后侧)之间的交点ve2、ve4、和ve6,以产生具有由ve0(v0)、ve1(v1)、ve2、ve4、ve5(v5)、和ve6组成的新结构的三维线段。
然而,在传统技术中,必需执行的复杂的处理包括进行顺序搜索,以确定构成三维线段的各个节点和连线是否在视见体的六个边界侧处相交,如果交点存在则计算交点并进行线段裁剪,重新分配存储器以储存由通过线段裁剪等产生的新节点和连线组成的三维线段的结构。因此,三维线段的裁剪速度很慢,这就产生这样的问题,即难以在例如移动通信终端等低性能移动设备中显示例如三维地图等三维图像。
发明内容
本发明的一个目的是提供一种线段裁剪方法以及使用该线段裁剪方法显示图像的方法,其中在显示例如三维地图等三维图像中,可减少计算量和提高计算效率。
本发明的另一目的是提供一种线段裁剪方法以及使用该线段裁剪方法显示图像的方法,其中在显示包括三维地图的三维图像中可提高三维线段的分量的显示速度。
本发明的再一目的是提供一种线段裁剪方法以及使用该线段裁剪方法显示三维图像的方法,其中三维线段经受近似线段裁剪,从而提高裁剪速度。
本发明的又一目的是提供一种线段裁剪方法以及使用该线段裁剪方法显示三维图像的方法,其中三维地图甚至可显示在低性能设备的屏幕上。
用于获得上述目的的本发明的一个实施例提出了一种新方法,其中与要求裁剪视见体的六个平面的一般三维图形的通常处理过程相反,在投影平面和作为视点的投影中心位置之间限定裁剪平面,使得裁剪平面与投影平面平行,并在裁剪平面处执行裁剪,从而在屏幕上显示三维线段,而没有错误发生。
根据本发明的实施例,输入并使用具有由节点和连线组成的一般结构的三维线段。在载入二维地图数据或以前的三维建模数据的情况下执行初级裁剪,在执行投影转换之前执行次级裁剪。在载入二维地图数据或三维建模数据的情况下,通过仅载入投影中心位置周围的二维数据和三维建模数据执行初级裁剪。即,仅载入待投影到投影平面上的包括视见体内的特定区域上的数据。因此,执行间接裁剪以提高存储器的使用效率。
次级裁剪用于去除在构成三维线段的分量中存在于投影中心位置处的连线和节点。将介于投影中心位置和投影平面之间并平行于投影平面的任意平面定义为裁剪平面,且在裁剪平面处直接执行线段裁剪。这里,裁剪平面外部是指视见体外部,裁剪平面内部是指视见体内部。
对横跨裁剪平面的三维线段进行次级裁剪。如果构成三维线段的所有节点均存在于视见体外,则将节点全部去除。如果构成三维线段的所有节点均存在于视见体内,则将节点投影到投影平面上。
如果构成三维线段的节点中有一些节点存在于视见体外,而其它节点存在于视见体内,则意味着三维线段横跨裁剪平面。在次级裁剪过程中,得到三维线段和裁剪平面之间的交点,且利用存在于交点和视见体内的节点产生新的三维线段。
在产生新的三维线段后,首先得到三维线段和裁剪平面之间的交点数。重新分配存储器以储存坐标,其数量是所获得的交点数量和通过从构成三维线段的节点总量减去存在于视见体外的节点数量的值之和。
三维线段和裁剪平面之间的交点坐标可表示为预定参数方程。当将裁剪平面的z轴值设定为k时,通过得到参数t而求解该参数方程。这样,可简单地得到三维线段和裁剪平面之间的交点坐标。
就次级裁剪的实际过程而言,顺序搜索横跨裁剪平面的三维线段的各个连线,然后确定构成新的三维线段的节点坐标。
根据以下所述,确定构成新的三维线段的节点坐标。
如果从当前节点延伸到下一节点的连线是从视见体内到视见体外的连线,则将当前节点的坐标指定为新的三维线段的节点坐标,计算当前连线和裁剪平面之间的交点坐标,并将所计算的交点坐标添加为新的三维线段的节点坐标。
如果从当前节点延伸到下一节点的连线是从视见体外到视见体内的连线,则计算当前连线和裁剪平面之间的交点坐标,并将所计算的交点坐标添加为新的三维线段的节点坐标。
如果当前节点和下一节点都存在于视见体内,则将当前节点的坐标指定为新的三维线段的节点坐标。
如果当前节点和下一节点都存在于视见体外,则不执行任何动作。
根据本发明的此实施例,将通过上述步骤确定的存在于视见体内的三维线段投影到投影平面上,然后以与一般三维图形的处理相同的方式将其显示在屏幕上。
在本发明的另一实施例中,不是通过裁剪三维线段后计算三维线段和投影平面之间的交点而产生待投影到投影平面上的具有新结构的三维线段,而是在投影中心位置和投影平面之间限定平行于投影平面的裁剪平面,仅连接存在于裁剪平面内(即视见体内)的节点以产生具有新结构的三维线段,并将所产生的三维线段投影到投影平面上并显示在屏幕上。这样,由于三维线段的裁剪而产生的错误部分被放置在投影平面和裁剪平面之间,从而使由于近似裁剪而产生的错误部分不能显示在屏幕上。
根据本发明的此实施例,就横跨投影平面的三维线段而言,在次级裁剪步骤期间没有得到三维线段和投影平面之间的交点,但产生具有这样一种新结构的三维线段,该新结构仅由在构成先前的三维线段的节点中存在于视见体内的节点组成。因此,可能消除以下复杂步骤:确定三维线段是否在视见体的边界的六个侧面相交,如果之间存在交点则计算交点;从而提高了裁剪的处理速度。
为了不根据存在于视见体内的三维线段的节点数分配存储器或改变其中将储存三维线段的节点的存储器的结构,就产生具有新结构的新的三维线段,将存在于视见体外的坐标设定为从存在于视见体内的邻近位置处的节点坐标复制的值。
如果根据存在于视见体内的节点数分配存储器,则产生仅由存在于视见体内的节点构成的新的三维线段,同时顺序搜索三维线段的节点,并将新的三维线段投影到投影平面上,从而可将其转换成依次显示在屏幕上的二维线段。
通过选择存在于视见体外的节点,同时顺序搜索三维线段的节点,并通过将存在于视见体内的先前的节点坐标复制为存在于视见体外的节点坐标,将存在于视见体内的邻近位置处的节点坐标复制为存在于视见体外的节点坐标。这样,无需改变存储器的结构或重新分配存储器,就可以很高的速度简单地重新构造三维线段。
如果三维线段的起始节点存在于视见体外,则通过在三维线段的节点中找到第一个位于视见体内的节点,并将第一个位于视见体内的节点坐标复制为先前的节点坐标,构造新的三维线段。
根据本发明的此实施例,通过将裁剪平面邻近投影中心位置并远离投影平面放置,将三维图像投影到投影平面上并显示在屏幕上时,防止在执行三维线段的近似裁剪时可能发生且可能显示在显示板的屏幕的下端部的一些裁剪错误显示在屏幕上。
根据本发明,当处理三维图像然后将其显示在屏幕上时,计算量极大地减少,且计算速度变得很高,由此可在例如移动通信终端等低性能移动设备中显示例如三维地图等三维图像。
附图说明
根据以下结合附图给出的对优选实施例的描述,本发明的上述和其它目的、特征和优点将变而显而易见,在附图中:
图1示出包含在三维图形的一般处理过程中的裁剪方法的示意图;
图2a和2b示出存在于投影中心后面的三维线段被反向投影的现象的示意图;
图3示出在显示三维地图中产生的输出误差的示意图;
图4示出三维线段的裁剪和投影的实际原理的示意图;
图5示出传统的线段裁剪方法的示意图;
图6示范性地示出导航系统的构造的框图,其中根据本发明的线段裁剪方法和使用该线段裁剪方法显示三维图像的方法将应用于该导航系统;
图7a至7c示出在根据本发明的线段裁剪方法的实施例执行线段裁剪期间,将二维地图转换为三维地图,并将三维地图显示在屏幕上的流程图;
图8示出在本发明的线段裁剪方法中,计算裁剪平面和三维线段之间的交点坐标的操作的示意图;
图9示出本发明的线段裁剪方法的实施例的原理的示意图;
图10a和10b示出在根据本发明的线段裁剪方法的另一实施例,执行三维线段的裁剪期间将二维地图转换为三维地图并将三维地图显示在屏幕上的流程图;
图11示出产生图10a中所示的新三维线段的实例的流程图;
图12a和12b示出产生图11中所示的新三维线段的实例中的操作的示意图;
图13示出产生图10a中的新三维线段的另一实例的流程图;以及
图14a、图14b、图15a、和15b示出产生图13中所示的新三维线段的实例中的操作的示意图。
具体实施方式
下文中,将参看附图(特别是图6至图15)详细描述根据本发明的线段裁剪方法和使用该线段裁剪方法显示三维图像的方法。
图6示范性地示出导航系统的构造的框图,其中根据本发明的线段裁剪方法和使用该线段裁剪方法显示三维图像的方法将应用于该导航系统。如图中所示,该导航系统包括:GPS(全球定位系统)接收器610,用于接收由多个GPS卫星600发射的导航消息;地图数据存储单元620,用于预先储存其中具有二维坐标的地图数据;命令输入单元630,用于根据用户的操纵接收操作命令;控制单元640,用于控制以下操作:根据由GPS接收器610接收的导航消息确定当前的交通工具位置、根据所确定的当前交通工具位置从地图数据存储单元620读出特定区域的具有二维坐标的地图数据的操作、将读出的具有二维坐标的地图数据转换为具有三维坐标的地图数据、以及显示具有三维坐标的地图数据以便引导交通工具的行进路径;以及显示驱动单元650,用于使得当前的交通工具位置和行进路径以及三维地图在控制单元640的控制下显示在显示板660上。
如上构造的导航系统的GPS接收器610接收分别由多个GPS卫星600发射的导航消息,并将其输入控制单元640中。
当交通工具行进时,控制单元640使用由GPS接收器610接收和输入的导航消息确定当前的交通工具位置,并根据所确定的当前的交通工具位置从地图存储单元620读出特定区域的具有二维坐标的地图数据。
接着,在利用本发明的线段裁剪方法裁剪三维线段期间,控制单元640将读出的具有二维坐标的地图数据转换为三维坐标。控制单元640接着将具有三维坐标的地图数据输出到显示驱动单元650,从而三维地图可显示在显示板660上。此时,所确定的当前交通工具位置同时以箭头或类似物的形式显示在三维地图中,以引导交通工具的行进。
这里,已经通过固定安装在交通工具处的实例描述了导航系统。相反,在这种导航系统安装在移动设备中的情形下,地图存储单元620的存储容量存在限制。因此,响应来自命令输入单元630的命令,可连接到地图提供服务器,以下载特定区域(例如Seoul City的整个区域)的具有二维坐标的地图数据,且所下载的具有二维坐标的地图数据被储存在地图存储单元620中,然后被使用。
图7a至7c是流程图,示出在根据本发明的线段裁剪方法执行线段裁剪期间控制单元640将具有二维坐标的地图转换为具有三维坐标的地图,并将具有三维坐标的地图数据显示在屏幕上的过程。如图7a中所示,控制单元640确定参考位置的坐标(步骤700)。这里,可将控制单元640根据由GPS接收器610接收的导航消息检测的当前交通工具的位置坐标,或由用户通过命令输入单元630输入的位置坐标确定为参考位置的坐标。
当已经在步骤700中完全确定参考位置的坐标时,控制单元640执行初始化三维环境以在显示板660上显示三维地图或三维模型的过程(步骤710)。在步骤710中执行的初始化三维环境的过程包括以下步骤。初始化光照环境(步骤711)。步骤711中对光照环境的初始化设定视点、视线(sight line)、光源方向、光源强度、以及根据建筑物的各个侧的角度表示建筑物的各侧的色彩和深度等。接着,初始化深度缓冲器(步骤712)。即,初始化用于表示从视点到将显示特定对象的位置的距离的深度缓冲器。接着,清除显示板的屏幕的背景色,并将其设定为预定色彩(步骤713)。
当在步骤710中完成初始化三维环境的过程后,控制单元640执行设定视点的过程(步骤720)。在步骤720中设定视点的过程包括以下步骤。首先,设定视点的位置(步骤721)。就设定视点的位置而言,例如,可将在步骤700中确定的参考位置的坐标提升预定高度得到的位置设定为视点。在步骤722中,接着设定表示从视点的设定位置观看三维地图或模型的方向的视线。例如,将控制单元640根据由GPS接收器610接收的导航消息确定的交通工具的行进方向设定为视线。
当在步骤720中完成设定视点的过程时,控制单元640设定在将具有二维坐标的地图数据投影到投影平面上的投影转换中使用的投影参数(步骤730)。
在控制单元640顺序执行步骤710中的三维环境初始化过程、步骤720中的视点设定过程、以及步骤730中的投影参数设定过程时,控制单元从地图存储单元620载入具有二维坐标的地图数据,所述具有二维坐标的地图数据将转换为具有三维坐标的地图数据(步骤740)。这里,通过从地图数据存储单元620仅载入在步骤700中确定的参考位置的坐标附近的特定区域的具有二维坐标的地图数据,而无需载入储存在地图数据存储单元620中的所有具有二维坐标的地图数据,执行具有二维坐标的地图数据的载入。以这种方式得到初级裁剪。
在下一步骤750中,执行将载入的具有二维坐标的地图数据建模为具有三维坐标的地图数据的三维建模过程。步骤750中的三维建模过程包括以下步骤。从载入的具有二维坐标的地图数据产生用于具有三维坐标的三维地图的底部图(bottom map)(步骤751)。例如,设定道路、绿化带、河流、湖泊等的线条。设定各个建筑物的节点的高度(步骤752)。产生具有设定高度的各个建筑物(步骤753),然后使用箭头或虚线产生交通工具的行进路径(步骤754)。
这里,已经通过结合在导航系统中将具有二维坐标的地图数据转换为具有三维坐标的地图数据的情形的实例描述了步骤740中载入具有二维坐标的地图数据的过程和步骤750中的三维建模过程。然而,就其中显示三维图像的游戏或类似物而言,由于三维模型上的数据已经预先储存在存储装置中,所以无需执行步骤740中载入具有二维坐标的地图数据的过程和步骤750中的三维建模过程,就可从存储装置直接载入用于基于参考位置坐标的特定区域的三维模型上的数据。
在步骤760中,控制单元640执行视点转换过程。在步骤760中的视点转换过程中,在三维建模过程中三维扩展的模型上的数据或从存储装置直接载入的三维模型上的数据的各个节点的三维坐标,通过三维移动、三维转动、或比例变换转换为基于视点的坐标系中的坐标。
当在步骤760中完全执行视点转换过程时,控制单元640执行次级裁剪,并去除在视见体外以三维存在的分量,如图7b中所示(步骤770)。
对于步骤770中的次级裁剪,将构成三维图像的所有节点的z轴值kl与裁剪平面的z轴值k进行比较,将作为比较结果的满足kl≥k的节点确定为存在于视见体内的节点,且将满足kl<k的节点确定为存在于视见体外的节点(步骤771)。接着,在顺序搜索三维线段的节点的同时,通过这样的比较确定所有的三维线段的节点是存在于视见体外还是存在于视见体内,从而执行次级裁剪(步骤772)。
对于步骤772中的次级裁剪,确定构成三维线段的所有节点是否存在于视见体外(步骤772-10),并确定构成三维线段的所有节点是否存在于视见体内(步骤772-20)。
如果在步骤772-10中确定构成三维线段的所有节点存在于视见体外,则控制单元640去除存在于视见体外的三维线段(步骤772-30),并确定所有的三维线段是否已被完全搜索(步骤772-60)。如果确定并不是所有的三维线段已被完全搜索,则程序返回步骤772-10,从而可重复执行确定构成三维线段的所有节点存在于视见体外或视见体内的操作。
如果在步骤772-20中确定构成三维线段的所有节点存在于视见体内,则控制单元640将相应的三维线段确定为待显示在显示板660上的三维线段(步骤772-50)。接着,控制单元640确定是否所有的三维线段都已被完全搜索(步骤772-60)。如果确定并不是所有的三维线段已被完全搜索,则程序返回步骤772-10,从而可重复执行确定构成三维线段的所有节点存在于视见体外或视见体内的操作。
同时,如果在步骤772-10中确定构成三维线段的所有节点不必存在于视见体外,且在步骤772-20中确定所有节点不必存在于视见体内,则意味着三维线段横跨裁剪平面。控制单元640改变横跨裁剪平面的三维线段的结构,以产生具有新结构的三维线段(步骤772-40)。
对于在步骤772-40中产生具有新结构的三维线段,将存储器的区域分配给用于所产生的将在其中存储的三维线段的节点的坐标(步骤772-41)。以节点顺序顺次搜索三维线段的连线,确定用于具有新结构的三维线段的节点坐标,并将该节点坐标储存在所分配的存储器的区域中(步骤772-42)。
如下所述,在步骤772-42中确定具有新结构的三维线段的节点坐标。
如果从当前节点到下一节点的连线从视见体内进行到视见体外,则将当前节点的坐标确定为具有新结构的三维线段的节点的坐标,计算裁剪平面和连接这两个节点的连线之间的交点的坐标,并将所计算的交点的坐标确定为具有新结构的三维线段的节点的坐标。
如果从当前节点到下一节点的连线从视见体外进行到视见体内,则计算裁剪平面和连接这两个节点的连线之间的交点的坐标,并将所计算的交点的坐标确定为具有新结构的三维线段的节点的坐标。
这里,如下所述,计算裁剪平面和连线之间的交点坐标。
如图8中所示,假定连接节点A(x1,y1,z1)和节点B(x2,y2,z2)的三维线段的连线820横跨放置在相对于投影中心位置800(为视点O(0,0,0)的z轴值为k的位置处的裁剪平面810,则可根据以下式子1得到裁剪平面810和连线820之间的交点P(x,y,z):
OP=
OA+t(
OB-
OA)
x=x1+t(x2-x1)
y=y1+t(y2-y1)
z=z1+t(z2-z1) ......(1)
这里,由于裁剪平面810的z轴值为k,则可根据以下式子2得到参数t:
接着,可将裁剪平面810和连线820之间的交点P(x,y,z)坐标表示成以下式子3:
z=k ......(3)
如果当前节点和下一节点均存在于视见体内,则将当前节点的坐标指定为具有新结构的三维线段的节点坐标。
如果当前节点和下一节点均存在于视见体外,则不执行任何操作。
在逐一地顺序选择待搜索的节点和连线期间,重复确定具有新结构的三维线段的节点,然后在当前节点和连线是最后的节点和连线时终止确定具有新结构的三维线段的节点。
即,根据本发明,z轴坐标值为k的任意裁剪平面920在投影中心位置900和投影平面910之间形成,且在裁剪平面920处执行线段裁剪,如图9中所示。此时,对于由节点v0、v1、v2、v3、v4、v5、和v6组成的三维线段930,去除存在于裁剪平面920外的节点v2和v3,得到三维线段930和裁剪平面920之间的交点ve2和ve3,然后产生具有由节点v0、v1、ve2、ve3、v4、v5、和v6组成的新结构的三维线段。
在步骤772-40中完全产生具有新结构的三维线段时,控制单元640确定具有新结构的三维线段是待显示在显示板660上的三维线段(步骤772-50),并确定所有三维线段是否已被完全搜索(步骤772-60)。如果确定并没有完全搜索所有的三维线段,则程序返回步骤772-10,从而可重复执行在确定构成三维线段的所有节点存在于视见体外或视见体内期间裁剪三维线段的操作。
如果在步骤772-60中已经完全搜索所有的三维线段,则控制单元640去除三维图像的所有多边形和地名中存在于视见体外的所有分量(步骤773),并去除重叠并隐藏的三维边(步骤774)。这样,完成次级裁剪操作。
当在步骤770中完成次级裁剪时,控制单元640执行投影转换过程(步骤780)。
步骤780中的投影转换过程包括以下步骤。转换为基于视点的坐标系中的坐标的各个节点的三维坐标经受到投影平面上的投影转换,以获得二维坐标(步骤781),且将投影到投影平面上的二维坐标(即投影坐标)转换为屏幕坐标(步骤782)。
接着,执行在显示板660上显示三维地图的显示过程(步骤790)。在步骤790中执行的显示过程包括以下步骤。将用于例如道路、绿化带、河流、和湖泊等平面对象的多边形和折线显示在显示板660(步骤791)上,将用于交通工具的行进路径的折线显示在显示板660(步骤792)上,将用于各个三维建筑物的多边形显示在显示板660上(步骤793),然后将例如地名等文本数据输出到显示板并在显示板660上显示(步骤794)。
图10a和10b是流程图,示出在根据本发明的线段裁剪方法的另一实施例,在执行三维线段的近似裁剪期间将二维地图转换为三维地图并将三维地图显示在屏幕上的过程。如图中所示出的,在图7a的步骤760中执行视点转换过程后,控制单元640执行次级裁剪,以去除以三维形式存在于视见体外的所有分量(步骤1000)。
对于步骤1000中的次级裁剪,将构成三维图像的所有节点的z轴值kl与裁剪平面的z轴值k进行比较,将作为比较结果的满足kl≥k的节点确定为存在于视见体内的节点,且将满足kl<k的节点确定为存在于视见体外的节点(步骤1001)。接着,在顺序搜索三维线段的节点的同时,通过这样的比较确定所有的三维线段的节点是存在于视见体外还是存在于视见体内,从而执行次级裁剪(步骤1002)。
对于步骤1002中的次级裁剪,确定构成三维线段的所有节点是否存在于视见体外(步骤1002-1),并确定构成三维线段的所有节点是否存在于视见体内(步骤1002-2)。
如果在步骤1002-1中确定构成三维线段的所有节点存在于视见体外,则控制单元640去除相应的三维线段(步骤1002-3),并确定所有的三维线段是否已被完全搜索(步骤1002-6)。如果确定并不是所有的三维线段已被完全搜索,则程序返回步骤1002-1,从而可重复执行选择下一个三维线段和确定构成三维线段的所有节点是存在于视见体外还是存在于视见体内的操作。
如果在步骤1002-2中确定构成三维线段的所有节点存在于视见体内,则控制单元640将相应的三维线段确定为待显示在显示板660上的三维线段(步骤1002-5)。接着,控制单元640确定是否所有的三维线段都已被完全搜索(步骤1002-6)。如果确定并不是所有的三维线段已被完全搜索,则程序返回步骤1002-1,从而可重复执行选择下一三维线段和确定构成三维线段的所有节点是存在于视见体外还是存在于视见体内的操作。
同时,如果在步骤1002-1和1002-2中确定构成三维线段的所有节点不必存在于视见体外或视见体内,则意味着三维线段横跨裁剪平面。控制单元640改变横跨裁剪平面的三维线段的结构,以产生具有新结构的三维线段(步骤1002-4)。
图11示出在步骤1002-4中产生新的三维线段的实例的流程图。如图中所示出的,控制单元640顺序搜索构成三维线段的节点和确定存在于视见体内的节点数(步骤1100),分配相应于确定的节点数的存储器的存储区(步骤1110),且产生新的三维线段(步骤1120)。
就在步骤1120中产生新的三维线段而言,选择三维线段的第一节点(步骤1121),且确定所选择的第一节点是否存在于视见体内(步骤1122)。如果所选择的第一节点存在于视见体内,则将节点坐标储存在存储器中(步骤1123)。如果所选择的第一节点不存在于视见体内,则不将其坐标储存在存储器中。
接着,确定是否存在下一节点(步骤1124)。如果确定存在下一节点,则选择该下一节点(步骤1125),且程序返回步骤1122,从而根据所选择的节点是否存在于视见体内,重复执行在存储器中储存所选择的节点坐标的操作。如果在步骤1124中确定不存在下一节点,则程序返回步骤1002-5。
在其中产生新的三维线段的本发明的此实例中,例如,就由图12a中所示的七个节点v0、v1、v2、v3、v4、v5、和v6组成的三维线段而言,确定存在于裁剪平面1200内(即视见体内)的四个节点v0、v1、v5、和v6。接着,如图12b中所示,分配其中将储存这四个节点的坐标的存储器1210的区域。将节点v0、v1、v5、和v6的坐标ve0、ve1、ve5、和ve6分别储存在所分配的存储器1210的区域中,以产生具有新结构的三维线段。
图13示出在步骤1002-4中产生新的三维线段的过程的另一实例的流程图。如图中所示,控制单元640顺序搜索构成三维线段的所有节点,并在存储器中临时储存第一个存在于视见体内的节点坐标(步骤1300),然后在顺序搜索构成三维线段的各个节点的同时产生新的三维线段(步骤1310)。
就在步骤1310中产生新的三维线段而言,顺序选择一个节点,即选择第一节点(步骤1311),并确定所选择的节点是否是存在于视见体外的节点(步骤1312)。如果确定所选择的节点不是存在于视见体外,而是存在于视见体内,则可将相应节点的坐标直接储存在存储器中(步骤1313)。
如果在步骤1312中确定所选择的节点是存在于视见体外的节点,则控制单元640确定所选择的节点是三维线段的起始节点(步骤1314)。如果确定所选择的节点是起始节点,则将在三维线段的节点中第一个存在于视见体内的节点的坐标储存为起始节点的坐标(步骤1315)。如果在步骤1314中确定所选择的节点不是起始节点,则将前一个节点的坐标复制为当前节点的坐标,然后将该前一个节点的坐标储存(步骤1316)。
接着,确定是否存在下一节点(步骤1317)。如果确定存在下一节点,则程序返回步骤1311,从而选择该下一节点,并重复执行上述操作。
在其中产生新的三维线段的本发明的此实例中,例如,顺序搜索图14a中示出的构成横跨所示裁剪平面1400的三维线段1410的七个节点v0至v6。就存在于视见体内的节点v0、v1、v5、和v6而言,将节点v0、v1、v5、和v6的坐标ve0、ve1、ve5、和ve6直接储存在存储器1420中,如图14b中所示。就存在于视见体外的节点v2、v3、v4而言,将节点v1(为存在于视见体内的前一节点)的坐标ve1顺序复制为其坐标,然后将其储存。
同时,如图15a中所示,如果横跨裁剪平面1500并由七个节点v0至v6构成的三维线段1510的起始节点v0是存在于图15a所示的视见体外的节点,则搜索三维线段1510的节点v0至v6中第一个位于视见体内的节点v2,且将节点v2的坐标ve2复制为节点v0的坐标,并将其储存在存储器1520中,如图15b中所示。将储存为节点v0的坐标的坐标ve2复制为存在于视见体外的节点v1的坐标,然后将其储存。而且,将节点v2的坐标ve2顺序复制为存在于视见体外的节点v3和v4的坐标,然后将其储存。因此,产生具有新结构的三维线段。
当在步骤1002-4中完成具有新结构的三维线段的产生时,控制单元640将具有新结构的三维线段确定为待显示在显示板660上的三维线段(步骤1002-5)。控制单元640确定是否所有的三维线段已经被完全检索(步骤1002-6)。如果确定并不是全部的三维线段已被完全检索,则程序返回步骤1002-1。接着,重复执行确定所选择的三维线段的所有节点是存在于视见体外还是存在于视见体内的操作。
如果在步骤1002-6中确定所有三维线段已经被完全搜索,则控制单元640去除三维图像的所有多边形和地名中存在于视见体外的所有分量(步骤1003),并去除重叠并隐藏的三维边(步骤1004)。以此方式,完成次级裁剪。
当在步骤1000中完成次级裁剪时,控制单元640执行投影转换过程(步骤1010)。
步骤1010中的投影转换过程包括以下步骤。转换为基于视点的坐标系中的坐标的各个节点的三维坐标经受到投影平面上的投影,以获得二维坐标(步骤1011),且将投影到投影平面上的二维坐标即投影坐标转换为屏幕坐标(步骤1012)
这里,可能将在执行这种近似裁剪时可能发生的错误投影到投影平面的下边沿区域上,然后显示在显示板660上。因此,当在步骤1012中将投影坐标转换为屏幕坐标时,本发明设置了除投影平面的下边沿区域(其中显示错误)外的屏幕显示区,并将屏幕显示区内的三维图像的投影坐标转换为屏幕坐标。
即,根据本发明的这个实施例,在将投影坐标转换为屏幕坐标时,首先通过在裁剪平面处执行近似裁剪,其次通过去除投影平面下端处的特定区域,可防止将执行三维线段的近似裁剪时可能发生的这种错误显示在显示板660上。
接着,执行在显示板660上显示三维地图的显示过程(步骤1020)。在步骤1020中执行的显示过程包括以下步骤。将用于例如道路、绿化带、河流、和湖泊等平面对象的多边形和折线显示在显示板660上(步骤1021),将用于交通工具的行进路径的折线显示在显示板660上(步骤1022),用于各个三维建筑物的多边形显示在显示板660上(步骤1023),然后将例如地名等文本数据输出到显示板660,并显示在显示板660上(步骤1024)。
根据上述的本发明,具有新结构的三维线段由存在于裁剪平面内即视见体内的三维线段的节点构成。这样,三维线段的裁剪速度很高,且处理三维图像所需要的计算量大大减小,导致计算速度很高。因此,可将例如三维地图等三维图像显示在例如移动通信终端等低性能移动设备中。
虽然已经结合优选实施例示出和描述了本发明,但是本领域中的技术人员将易于理解,可对其作出各种修改和变化,而不偏离由所附权利要求所限定的本发明的精神和范围。也就是说,虽然已经通过将线段裁剪应用于将二维地图上的数据转换为三维地图上的数据,并在三维导航系统中的屏幕上显示被转换的数据的实例描述了本发明,但是不限于此。本发明可简单地应用于包括在显示板的屏幕上显示三维图像的多种领域中。
Claims (33)
1.一种线段裁剪方法,包括:
位置确定步骤,通过将待投影到投影平面上的三维图像的三维线段的各个节点的z轴值与相对于投影中心位置的裁剪平面的z轴值进行比较,确定待投影到投影平面上的三维图像的三维线段的各个节点是存在于视见体内还是存在于视见体外;以及
线段裁剪步骤,如果在所述位置确定步骤中确定所述三维线段的节点既存在于所述视见体内又存在于所述视见体外,则计算所述裁剪平面和连接所述三维线段的节点的连线之间的交点,并使用所述计算出的交点和存在于所述视见体内的节点构造新的三维线段。
2.根据权利要求1所述的方法,其中所述裁剪平面介于所述投影中心位置和所述投影平面之间。
3.根据权利要求1所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a)分配存储器的区域,用于储存所述新的三维线段的节点坐标;
(b)如果所述连线从存在于所述视见体内的节点进行到存在于所述视见体外的节点,则将存在于所述视见体内的节点以及所述连线和所述裁剪平面之间的交点确定为所述新的三维线段的节点;
(c)如果所述连线从存在于所述视见体外的节点进行到存在于所述视见体内的节点,则将所述连线和所述裁剪平面之间的交点确定为所述新的三维线段的节点;
(d)如果所述连线从存在于所述视见体内的节点进行到存在于所述视见体内的节点,则将所述连线中每条连线的两个节点确定为所述新的三维线段的节点;以及
(e)在步骤(a)中所分配的所述存储器的相应区域中储存在步骤(b)至(d)中确定的所述新的三维线段的节点。
4.一种线段裁剪方法,包括:
位置确定步骤,通过将待投影到投影平面上的三维图像的三维线段的各个节点的z轴值与相对于投影中心位置的裁剪平面的z轴值进行比较,确定待投影到投影平面上的三维图像的三维线段的各个节点是存在于视见体内还是存在于视见体外;以及
线段裁剪步骤,如果在所述位置确定步骤中确定所述三维线段是既具有存在于所述视见体内的节点也具有存在于所述视见体外的节点的三维线段,则仅使用存在于所述视见体内的节点构造新的三维线段。
5.根据权利要求4所述的方法,其中所述裁剪平面介于所述投影中心位置和所述投影平面之间。
6.根据权利要求4所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a’)确定在所述三维线段的节点中存在于所述视见体内的所述节点的数量;
(b’)分配存储器的区域,来储存其数量在所述步骤(a’)中已被确定的所述节点的坐标;以及
(c’)通过在步骤(b’)中分配的所述存储器的相应区域中储存在步骤(a’)中确定的存在于所述视见体内的所述节点的坐标,构造新的三维线段。
7.根据权利要求4所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a”)在所述三维线段的节点中搜索第一个位于所述视见体内的节点;
(b”)顺序选择所述三维线段的各个节点,并确定所述节点是存在于所述视见体内还是存在于所述视见体外;
(c”)如果在步骤(b”)中确定所述节点存在于所述视见体内,则在存储器的相应区域中储存所述节点的坐标;
(d”)如果在步骤(b”)中确定所述节点存在于所述视见体外,则确定所述节点中的一个节点是否是所述三维线段的起始节点;
(e”)如果在步骤(d”)中确定所述节点中的一个节点是所述三维线段的起始节点,则在所述存储器的、用于所述起始节点的坐标的区域中储存在步骤(a”)中搜索到的第一个位于所述视见体内的所述节点的坐标;以及
(f”)如果在步骤(d”)中确定所述节点中的一个节点不是所述三维线段的起始节点,则将在步骤(c”)或步骤(e”)中储存在所述存储器中的前一节点的坐标复制到用于所述当前节点的坐标的所述存储器的相应区域。
8.一种使用线段裁剪显示三维图像的方法,包括:
三维环境初始化步骤,初始化三维图像显示环境;
视点设定步骤,在所述三维环境初始化步骤之后根据参考位置的坐标设定视点和视线;
投影参数设定步骤,在所述视点设定步骤之后设定投影参数;
三维图像输入步骤,根据所述参考位置的坐标输入一区域的三维图像;
视点转换步骤,根据在所述视点设定步骤中设定的所述视点,将在所述三维图像输入步骤中输入的所述三维图像转换为坐标系中的三维图像;
裁剪步骤,根据在所述视点转换步骤中得到的所述视点,在所述坐标系中的被转换的三维图像中重新构造横跨裁剪平
面的三维线段,去除存在于视见体外的分量,且去除重叠并隐藏的三维边;
投影转换步骤,根据在所述投影参数设定步骤中设定的所述投影参数,将在所述裁剪步骤中进行裁剪后得到的三维图像投影到投影平面上,并将投影坐标转换为屏幕坐标;以及
显示步骤,在屏幕上显示具有在所述投影转换步骤中得到的所述经过转换的屏幕坐标的三维图像。
9.根据权利要求8所述的方法,其中所述参考位置的坐标是从GPS接收器接收的导航消息检测到的当前交通工具位置的坐标或由用户输入的坐标。
10.根据权利要求8所述的方法,其中所述三维环境初始化步骤包括以下步骤:
根据所述视点、视线、光源方向、光源强度、以及建筑物的各侧的角度,设定用于在显示所述建筑物的各侧时使用的色彩及其深度;
初始化深度缓冲器,所述深度缓冲器用于指示从所述视点到将显示待显示对象的位置的距离;以及
将预定色彩设定为所述屏幕的背景色。
11.根据权利要求8所述的方法,其中所述视点设定步骤包括:将在所述参考位置的坐标提升预定高度得到的位置设定为所述视点,和在所设定的视点处设定视线的步骤。
12.根据权利要求11所述的方法,其中所述视线位于从GPS接收器接收的导航消息检测的交通工具的行进方向上。
13.根据权利要求8所述的方法,其中在所述裁剪步骤中重新构造三维线段包括:
位置确定步骤,通过将所述节点的z轴值与相对于投影中心位置的所述裁剪平面的z轴值进行比较,确定待投影到所述投影平面上的所述三维图像的所述三维线段的各个节点是存在于视见体内还是存在于视见体外;以及
线段裁剪步骤,如果在所述位置确定步骤中确定所述三维线段既具有存在于所述视见体内的节点,也具有存在于所述视见体外的节点,则计算所述裁剪平面和连接所述三维线段的所述节点的连线之间的交点,并使用所述计算出的交点和存在于所述视见体内的所述节点构造新的三维线段。
14.根据权利要求13所述的方法,其中所述裁剪平面介于所述投影中心位置和所述投影平面之间。
15.根据权利要求13所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a)分配存储器的区域,用于储存所述新的三维线段的节点的坐标;
(b)如果所述连线从存在于所述视见体内的节点进行到存在于所述视见体外的节点,则将存在于所述视见体内的所述节点以及所述连线和所述裁剪平面之间的所述交点确定为所述新的三维线段的节点;
(c)如果所述连线从存在于所述视见体外的节点进行到存在于所述视见体内的节点,则将所述连线和所述裁剪平面之间的所述交点确定为所述新的三维线段的节点;
(d)如果所述连线从存在于所述视见体内的节点进行到存在于所述视见体内的节点,则将所述连线中每条连线的两个节点确定为所述新的三维线段的节点;以及
(e)在步骤(a)中分配的所述存储器的相应区域中储存在步骤(b)至(d)中确定的所述新的三维线段的所述节点。
16.根据权利要求8所述的方法,其中在所述裁剪步骤中重新构造所述三维线段包括:
位置确定步骤,通过将所述节点的z轴值与相对于投影中心位置的所述裁剪平面的z轴值进行比较,确定待投影到所述投影平面上的所述三维图像的所述三维线段的各个节点是存在于所述视见体内还是存在于所述视见体外;以及
线段裁剪步骤,如果在所述位置确定步骤中确定所述三维线段是既具有存在于所述视见体内的所述节点也具有存在于所述视见体外的所述节点的三维线段,则仅使用存在于所述视见体内的所述节点构造新的三维线段。
17.根据权利要求16所述的方法,其中所述裁剪平面介于所述投影中心位置和所述投影平面之间。
18.根据权利要求16所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a’)确定在所述三维线段的所述节点中存在于所述视见体内的所述节点的数量;
(b’)分配存储器的区域,用于储存其数量在步骤(a’)中被确定的所述节点的坐标;以及
(c’)通过在步骤(b’)中分配的所述存储器的所述相应区域中储存在步骤(a’)中确定的存在于所述视见体内的所述节点坐标,构造新的三维线段。
19.根据权利要求16所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a”)在所述三维线段的所述节点中搜索第一个位于所述视见体内的节点;
(b”)顺序选择所述三维线段的所述各个节点,并确定所述节点是存在于所述视见体内还是存在于所述视见体外;
(c”)如果在步骤(b”)中确定所述节点存在于所述视见体内,则在存储器的相应区域中储存所述节点的坐标;
(d”)如果在步骤(b”)中确定所述节点存在于所述视见体外,则确定所述节点中的一个节点是否是所述三维线段的起始节点;
(e”)如果在步骤(d”)中确定所述节点中的一个节点是所述三维线段的所述起始节点,则在所述存储器的用于所述起始节点的坐标的区域中储存在步骤(a”)中搜索的第一个位于所述视见体内的所述节点的坐标;以及
(f”)如果在步骤(d”)中确定所述节点中的一个节点不是所述三维线段的所述起始节点,则将在步骤(c”)或步骤(e”)中储存在所述存储器中的前一节点的所述坐标复制到所述存储器的用于所述当前节点的坐标的相应区域。
20.一种使用线段裁剪显示三维图像的方法,包括:
三维环境初始化步骤,初始化三维图像显示环境;
视点设定步骤,在所述三维环境初始化步骤之后根据参考位置的坐标设定视点和视线;
投影参数设定步骤,在所述视点设定步骤之后设定投影参数;
载入步骤,根据所述参考位置的坐标载入用于一区域的二维地图;
三维建模步骤,将在所述载入步骤中载入的所述二维地图建模为三维图像;
视点转换步骤,根据在所述视点设定步骤中设定的所述视点,将在所述三维建模步骤中建模的所述三维图像转换为坐标系中的三维图像;
裁剪步骤,根据在所述视点转换步骤中得到的所述视点,在所述坐标系中所述被转换的三维图像中重新构造横跨裁剪平面的三维线段,去除存在于视见体外的分量,且去除重叠并隐藏的三维边;
投影转换步骤,根据在所述投影参数设定步骤中设定的所述投影参数,将在所述裁剪步骤中执行裁剪后得到的三维图像投影到投影平面上,并将投影坐标转换为屏幕坐标;以及
显示步骤,在屏幕上显示具有在所述投影转换步骤中得到的所述被转换的屏幕坐标的三维图像。
21.根据权利要求20所述的方法,其中所述参考位置的所述坐标是从GPS接收器接收的导航消息中检测到的当前交通工具位置的坐标或由用户输入的坐标。
22.根据权利要求20所述的方法,其中所述三维环境初始化步骤包括以下步骤:
根据所述视点、视线、光源方向、光源强度、以及建筑物的各侧的角度,设定用于显示所述建筑物的各侧时使用的色彩及其深度;
初始化深度缓冲器,所述深度缓冲器用于表示从所述视点到将显示待显示对象的位置的距离;以及
将预定色彩设定为所述屏幕的背景色。
23.根据权利要求20所述的方法,其中所述视点设定步骤包括:
将在所述参考位置的所述坐标提升预定高度得到的位置设定为所述视点,和在所设定的视点处设定视线的步骤。
24.根据权利要求23所述的方法,其中所述视线位于从GPS接收器接收的导航消息检测的交通工具的行进方向上。
25.根据权利要求20所述的方法,其中在所述裁剪步骤中重新构造所述三维线段包括:
位置确定步骤,通过将所述节点的z轴值与相对于投影中心位置的所述裁剪平面的z轴值进行比较,确定待投影到所述投影平面上的所述三维图像的所述三维线段的各个节点是存在于所述视见体内还是存在于所述视见体外;以及
线段裁剪步骤,如果在所述位置确定步骤中确定所述三维线段既具有存在于所述视见体内的节点也具有存在于所述视见体外的节点,则计算所述裁剪平面和连接所述三维线段的所述节点的连线之间的交点,并使用所述计算出的交点和存在于所述视见体内的节点构造新的三维线段。
26.根据权利要求25所述的方法,其中所述裁剪平面介于所述投影中心位置和所述投影平面之间。
27.根据权利要求25所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a)分配存储器的区域来储存所述新的三维线段的节点的坐标;
(b)如果所述连线从存在于所述视见体内的节点进行到存在于所述视见体外的节点,则将存在于所述视见体内的节点以及所述连线和所述裁剪平面之间的交点确定为所述新的三维线段的节点;
(c)如果所述连线从存在于所述视见体外的节点进行到存在于所述视见体内的节点,则将所述连线和所述裁剪平面之间的所述交点确定为所述新的三维线段的节点;
(d)如果所述连线从存在于所述视见体内的节点进行到存在于所述视见体内的节点,则将所述连线中的每条连线的两个节点确定为所述新的三维线段的节点;以及
(e)在步骤(a)中分配的所述存储器的相应区域中储存在步骤(b)至(d)中确定的所述新的三维线段的所述节点。
28.根据权利要求20所述的方法,其中在所述裁剪步骤中重新构造所述三维线段包括:
位置确定步骤,通过将所述节点的z轴值与相对于投影中心位置的所述裁剪平面的z轴值进行比较,确定待投影到所述投影平面上的所述三维图像的所述三维线段的各个节点是存在于所述视见体内还是存在于所述视见体外;以及
线段裁剪步骤,如果在所述位置确定步骤中确定所述三维线段是既具有存在于所述视见体内的所述节点也具有存在于所述视见体外的所述节点的三维线段,则仅使用存在于所述视见体内的所述节点构造新的三维线段。
29.根据权利要求28所述的方法,其中所述裁剪平面介于所述投影中心位置和所述投影平面之间。
30.根据权利要求28所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a’)确定在所述三维线段的所述节点中存在于所述视见体内的节点的数量;
(b’)分配存储器的区域来储存其数量在步骤(a’)中被确定的所述节点的坐标;以及
(c’)通过在步骤(b’)中分配的所述存储器的所述相应区域中储存在步骤(a’)中确定的存在于所述视见体内的所述节点的坐标,构造新的三维线段。
31.根据权利要求28所述的方法,其中所述线段裁剪步骤包括以下步骤:
(a”)在所述三维线段的所述节点中搜索第一个位于所述视见体内的节点;
(b”)顺序选择所述三维线段的各个节点,并确定所述节点是存在于所述视见体内还是存在于所述视见体外;
(c”)如果在步骤(b”)中确定所述节点存在于所述视见体内,则在存储器的相应区域中储存所述节点的坐标;
(d”)如果在步骤(b”)中确定所述节点存在于所述视见体外,则确定所述节点中的一个节点是否是所述三维线段的起始节点;
(e”)如果在步骤(d”)中确定所述节点中的一个节点是所述三维线段的所述起始节点,则在用于储存所述起始节点的坐标的所述存储器的区域中储存在步骤(a”)中搜索的第一个位于所述视见体内的所述节点的坐标;以及
(f”)如果在步骤(d”)中确定所述节点中的一个节点不是所述三维线段的所述起始节点,则将在步骤(c”)或步骤(e”)中储存在所述存储器中的前一节点的所述坐标复制到所述存储器的用于所述当前节点的坐标的相应区域。
32.一种使用线段裁剪显示三维图像的方法,包括:
三维环境初始化步骤,初始化三维图像显示环境;
视点设定步骤,在所述三维环境初始化步骤之后根据参考位置的坐标设定视点和视线;
投影参数设定步骤,在所述视点设定步骤之后设定投影参数;
三维模型输入步骤,根据所述参考位置的所述坐标输入用于一区域的具有三维坐标的所述三维图像;
视点转换步骤,根据在所述视点设定步骤中设定的所述视点,将在所述三维模型输入步骤中输入的所述三维图像转换为坐标系中的三维图像;
裁剪步骤,根据在所述视点转换步骤中得到的所述视点,在所述坐标系中的所述被转换的三维图像中重新构造横跨裁剪平面的三维线段,去除存在于所述视见体外的分量,且去除重叠并隐藏的三维边;
投影转换步骤,根据在所述投影参数设定步骤中设定的所述投影参数,将在所述裁剪步骤中执行所述裁剪后得到的三维图像投影到投影平面上,并将投影坐标转换为屏幕坐标;以及
显示步骤,在屏幕上显示具有在所述投影转换步骤中得到的所述被转换的屏幕坐标的三维图像。
33.一种使用线段裁剪显示三维图像的方法,包括:
三维环境初始化步骤,初始化三维图像显示环境;
视点设定步骤,在所述三维环境初始化步骤之后根据参考位置的坐标设定视点和视线;
投影参数设定步骤,在所述视点设定步骤之后设定投影参数;
载入步骤,根据所述参考位置的所述坐标载入用于一区域的二维地图;
三维建模步骤,将在所述载入步骤中载入的所述二维地图建模为三维图像;
视点转换步骤,根据在所述视点设定步骤中设定的所述视点,将在所述三维建模步骤中建模的所述三维图像转换为坐标系中的三维图像;
裁剪步骤,根据在所述视点转换步骤中得到的所述视点,在所述坐标系中的所述被转换的三维图像中,将横跨裁剪平面的三维线段构造为使用存在于视见体内的节点的新的三维线段,去除存在于所述视见体外的分量,且去除重叠并隐藏的三维边;
投影转换步骤,根据在所述投影参数设定步骤中设定的所述投影参数,将在所述裁剪步骤中执行所述裁剪后得到的三维图像投影到投影平面上,并将投影坐标转换为屏幕坐标;以及
显示步骤,在屏幕上显示具有在所述投影转换步骤中得到的被转换的屏幕坐标的三维图像。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030086182A KR100550130B1 (ko) | 2003-12-01 | 2003-12-01 | 라인 클리핑 방법 및 라인 클리핑을 이용한 3차원 영상의표시방법 |
KR10-2003-0086183 | 2003-12-01 | ||
KR10-2003-0086182 | 2003-12-01 | ||
KR1020030086183A KR100550127B1 (ko) | 2003-12-01 | 2003-12-01 | 3차원 라인의 근사 클리핑 방법 및 이를 이용한 3차원영상의 표시방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1624721A true CN1624721A (zh) | 2005-06-08 |
Family
ID=36655468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200410091695.5A Pending CN1624721A (zh) | 2003-12-01 | 2004-11-30 | 线段裁剪方法以及使用其显示三维图像的方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20050116948A1 (zh) |
EP (1) | EP1538569A3 (zh) |
CN (1) | CN1624721A (zh) |
RU (1) | RU2296368C2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102184572A (zh) * | 2011-05-19 | 2011-09-14 | 威盛电子股份有限公司 | 三维图形裁剪方法、呈现方法及其图形处理装置 |
CN102779358A (zh) * | 2011-05-11 | 2012-11-14 | 达索系统公司 | 用于设计几何三维建模对象的方法 |
CN101726302B (zh) * | 2008-10-15 | 2013-02-13 | 高德信息技术有限公司 | 地图显示方法及导航终端 |
CN102227907B (zh) * | 2008-11-28 | 2014-02-12 | Tp视觉控股有限公司 | 用于提供具有三维感觉的环境光的显示系统和显示方法 |
CN104796649A (zh) * | 2014-01-21 | 2015-07-22 | 北京炬力北方微电子有限公司 | 一种三维投影的方法及装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7170530B2 (en) * | 2005-06-24 | 2007-01-30 | George Mason Intellectual Properties, Inc. | Image-based clipping |
JP2007026201A (ja) * | 2005-07-19 | 2007-02-01 | Sega Corp | 画像処理装置、道路画像描画方法および道路画像描画プログラム |
RU2470368C2 (ru) * | 2008-07-17 | 2012-12-20 | Самсунг Электроникс Ко., Лтд. | Способ обработки изображений |
US20150379664A1 (en) * | 2014-06-27 | 2015-12-31 | Kalyan K. Bhiravabhatla | Accelerated single plane clipping of polygons in graphics processing |
US20190004524A1 (en) * | 2016-08-31 | 2019-01-03 | Faraday&Future Inc. | System and method for planning a vehicle path |
CN107598984B (zh) * | 2017-09-08 | 2023-06-02 | 深圳市四六区工业产品策划有限公司 | 红外线测量剪刀和红外线测量电路模块及其裁剪方法 |
US11138465B2 (en) * | 2019-12-10 | 2021-10-05 | Toyota Research Institute, Inc. | Systems and methods for transforming coordinates between distorted and undistorted coordinate systems |
CN115147440B (zh) * | 2022-07-12 | 2024-04-19 | 中国建筑西南设计研究院有限公司 | 一种基于面域裁剪法的基础放坡线自动生成方法 |
CN115131371B (zh) * | 2022-07-12 | 2024-02-09 | 中国建筑西南设计研究院有限公司 | 基于面域的建筑结构构件的二三维混合裁剪方法及终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144387A (en) * | 1998-04-03 | 2000-11-07 | Liu; Mei-Chi | Guard region and hither plane vertex modification for graphics rendering |
JP2003006680A (ja) * | 2001-06-20 | 2003-01-10 | Zenrin Co Ltd | 3次元電子地図データの生成方法 |
-
2004
- 2004-11-18 US US10/993,275 patent/US20050116948A1/en not_active Abandoned
- 2004-11-19 RU RU2004133828/09A patent/RU2296368C2/ru not_active IP Right Cessation
- 2004-11-25 EP EP04292780A patent/EP1538569A3/en not_active Withdrawn
- 2004-11-30 CN CN200410091695.5A patent/CN1624721A/zh active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101726302B (zh) * | 2008-10-15 | 2013-02-13 | 高德信息技术有限公司 | 地图显示方法及导航终端 |
CN102227907B (zh) * | 2008-11-28 | 2014-02-12 | Tp视觉控股有限公司 | 用于提供具有三维感觉的环境光的显示系统和显示方法 |
CN102779358A (zh) * | 2011-05-11 | 2012-11-14 | 达索系统公司 | 用于设计几何三维建模对象的方法 |
CN102779358B (zh) * | 2011-05-11 | 2017-01-18 | 达索系统公司 | 用于设计几何三维建模对象的方法及设备 |
CN102184572A (zh) * | 2011-05-19 | 2011-09-14 | 威盛电子股份有限公司 | 三维图形裁剪方法、呈现方法及其图形处理装置 |
CN102184572B (zh) * | 2011-05-19 | 2017-07-21 | 威盛电子股份有限公司 | 三维图形裁剪方法、呈现方法及其图形处理装置 |
CN104796649A (zh) * | 2014-01-21 | 2015-07-22 | 北京炬力北方微电子有限公司 | 一种三维投影的方法及装置 |
CN104796649B (zh) * | 2014-01-21 | 2017-12-26 | 北京炬力北方微电子有限公司 | 一种三维投影的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1538569A2 (en) | 2005-06-08 |
RU2296368C2 (ru) | 2007-03-27 |
US20050116948A1 (en) | 2005-06-02 |
EP1538569A3 (en) | 2006-09-27 |
RU2004133828A (ru) | 2006-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100338639C (zh) | 显示三维地图的方法 | |
CN1163760C (zh) | 标定观测图象的装置和系统 | |
CN1624721A (zh) | 线段裁剪方法以及使用其显示三维图像的方法 | |
KR100520707B1 (ko) | 3차원 지도에서의 다중레벨 텍스트데이터 표시방법 | |
CN101447091B (zh) | 用于处理图形的设备及其方法 | |
CN1275206C (zh) | 三维电子地图数据的生成方法 | |
CN110163065B (zh) | 点云数据处理方法、点云数据加载方法、及装置和设备 | |
JP5950673B2 (ja) | ナビゲーション装置用データベース、地形の三次元表示を出力する方法、およびデータベースを生成する方法 | |
CN100547610C (zh) | 顶点着色器、绘图处理单元及其相关的流程控制方法 | |
JP2003085586A (ja) | 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム | |
US7450118B2 (en) | Method for displaying three-dimensional polygon on screen | |
JP2008077627A (ja) | 3次元画像のレンダリングにおける早期zテスト方法およびシステム | |
CN1559054A (zh) | 图像产生装置和计算机程序 | |
CN1713224A (zh) | 高速缓存优化数据格式化的系统和方法 | |
CN1559055A (zh) | 图象产生装置、图象产生方法、电子设备和计算机程序 | |
CN1932885A (zh) | 三维图像处理 | |
CN1734503A (zh) | 使用光谱分析的伸展驱动的网格参数化 | |
EP2518443A1 (en) | Method of generating a database, navigation device and method of determining height information | |
CN1559056A (zh) | 图象产生装置及其方法,以及计算机程序 | |
CN100346358C (zh) | 图象产生装置、图象产生方法、电子设备 | |
CN105373538A (zh) | 一种多边形对象的显示层级确定方法及装置 | |
CN111488411B (zh) | 道路设施的构建方法以及装置、渲染方法、介质、终端 | |
CN1643526A (zh) | 边界数据的内外判定方法及其程序 | |
CN1438615A (zh) | 图像处理方法 | |
KR100550127B1 (ko) | 3차원 라인의 근사 클리핑 방법 및 이를 이용한 3차원영상의 표시방법 |
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: 20050608 |