CN106611443B - 三维地形点拾取方法及装置 - Google Patents
三维地形点拾取方法及装置 Download PDFInfo
- Publication number
- CN106611443B CN106611443B CN201510700871.9A CN201510700871A CN106611443B CN 106611443 B CN106611443 B CN 106611443B CN 201510700871 A CN201510700871 A CN 201510700871A CN 106611443 B CN106611443 B CN 106611443B
- Authority
- CN
- China
- Prior art keywords
- point
- grid
- projection
- line segment
- transformation
- 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.)
- Active
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种三维地形点拾取方法及装置,获取用户操作点在视景体的近剪裁面上的第一投影点,以及在远剪裁面上的第二投影点;基于第一投影点和第二投影点构成的第一线段在三维地形上选取第一栅格集合,该第一栅格集合为最有可能被操作点操作的栅格的集合;计算第一线段与第一栅格集合中第一栅格的交点,将所计算得到的交点确定为操作点所拾取到的三维地形点。也就是说,本发明实施例基于用户操作点在视景体的近裁剪面和远裁剪面上的投影点构成的第一线段选取最有可能被操作点操作的栅格的集合,只计算第一线段与第一栅格集合中的第一栅格的交点来确定操作点所拾取的三维地形点,计算量少,目的性强,从而提高了三维地形点的拾取速度和精度。
Description
技术领域
本发明涉及电子地图技术领域,更具体的说,是涉及一种三维地形点拾取方法及装置。
背景技术
交互应用是大多数软件产品的基本需求,而在三维化产品中,交互应用不可避免的需要用到三维拾取技术。在电子地图中渲染三维地形是电子地图的发展趋势,现有技术可以通过数字地面模型(Digital Terrain Model,DTM)数据渲染电子地图中的三维地形。当用户对三维地形进行移图或者点击三维地形中的道路、兴趣点(Point of Interest,POI)等操作时,需要快速且准确地拾取到用户的操作点在三维地形上对应的三维地形点。
发明人在实现本发明的过程中发现,目前的三维地形点拾取方法存在处理速度和精确度都较低的问题。
发明内容
有鉴于此,本申请提供了一种三维地形点拾取方法及装置,以提高三维地形点的拾取速度和精度。
为实现上述目的,本发明提供如下技术方案:
一种三维地形点拾取方法,包括:
获取用户在三维地形上的操作点的屏幕坐标;
基于所述屏幕坐标确定所述操作点在三维地形的视景体的近剪裁面上的第一投影点,以及所述操作点在所述视景体的远剪裁面上的第二投影点;
基于所述第一投影点和所述第二投影点构成的第一线段,在所述三维地形上选取第一栅格,所选取的第一栅格构成第一栅格集合,所述第一栅格为最有可能被所述操作点操作的栅格;
计算所述第一线段与所述第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为所述操作点所拾取到的三维地形点。
一种三维地形点拾取装置,包括:
获取模块,用于获取用户在三维地形上的操作点的屏幕坐标;
第一确定模块,用于基于所述屏幕坐标确定所述操作点在三维地形的视景体的近剪裁面上的第一投影点,以及所述操作点在所述视景体的远剪裁面上的第二投影点;
选取模块,用于基于所述第一投影点和所述第二投影点构成的第一线段,在所述三维地形上选取第一栅格,所选取的第一栅格构成第一栅格集合,所述第一栅格为最有可能被所述操作点操作的栅格;
第二确定模块,用于计算所述第一线段与所述第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为所述操作点所拾取到的三维地形点。
经由上述的技术方案可知,本发明实施例公开的一种三维地形点拾取方法及装置,获取用户操作点在视景体的近剪裁面上的第一投影点,以及操作点在视景体远剪裁面上的第二投影点;基于第一投影点和第二投影点构成的第一线段在三维地形上选取第一栅格集合,该第一栅格集合为最有可能被操作点操作的栅格的集合;计算第一线段与第一栅格集合中第一栅格的交点,将所计算得到的交点确定为操作点所拾取到的三维地形点。由于本发明实施例中的第一线段是基于用户操作点在视景体的近裁剪面和远裁剪面上的投影点构成的,因此基于第一线段选取的第一栅格集合即为最有可能被操作点操作的栅格的集合,因此通过计算第一线段与第一栅格集合中的第一栅格的交点来确定操作点所拾取的三维地形点就可以减少计算量,目的性强,从而提高了三维地形点的拾取速度和精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的三维地形点拾取方法的一种实现流程图;
图2a为本发明实施例提供的投影变换所涉及的投影模型;
图2b为本发明实施例提供的图2a所示投影模型进行视口变换的反变换、投影变换的反变换、视图变换的反变换和模型变换的反变换后的示意图;
图3为本发明实施例提供的计算第一线段与第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为操作点所拾取到的三维地形点的一种实现流程图;
图4为本发明实施例提供的基于第一投影点和第二投影点构成的第一线段在三维地形上选取第一栅格的一种实现流程图
图5为本发明实施例提供的第一线段以及三维地形在海平面上的投影的示例图;
图6为本发明实施例提供的投影线段经过海平面上的栅格的一种示例图;
图7为本发明实施例提供的三维地形点拾取装置的一种结构示意图;
图8为本发明实施例提供的第二确定模块的一种结构示意图;
图9为本发明实施例提供的选取模块的一种结构示意图;
图10为本发明实施例提供的第一确定模块的一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开的三维地形点拾取方法的一种实现流程如图1所示,可以包括:
步骤S11:获取用户在三维地形上的操作点的屏幕坐标;
用户的操作点可以是用户通过鼠标进行点击时的鼠标点击点,也可以是用户通过操做体(如手指、触控笔等)在触摸屏上点击时的触控点。
在电子地图进行显示时,通常根据所需要显示的区域获取该区域的若干地图瓦片的三维地形。电子地图在显示时,显示的是渲染后的三维地形。用户在对电子地图进行操作时,操作点是对显示区域内的某个地图瓦片的三维地形进行操作。
在对三维地形进行渲染时,渲染的过程就是模拟人眼或摄像机成像的过程。较常用的渲染方法是:对三维地形依次进行模型变换,视图变换,投影变换(也称为透视变换)和视口变换,对变换后的数字地图模型进行渲染,其中,后一个变换是在前一个变换的基础上进行。
其中,在进行投影变换时,会基于如图2a所示的投影模型,其中,在近剪裁面和远剪裁面之间的区域为视点的可视区域(即视景体)。即在图2a所示的视点位置可以看到近剪裁面和远剪裁面之间的区域内的场景(即三维地形所展现的场景)。
步骤S12:基于操作点的屏幕坐标确定操作点在三维地形的视景体的近剪裁面上的第一投影点,以及操作点在视景体远剪裁面上的第二投影点;
可选的,可以对操作点的屏幕坐标依次进行视口变换的反变换、投影变换的反变换、视图变换的反变换和模型变换的反变换,其中,后一个变换是在前一个变换的基础上进行;
依据进行模型变换的反变换后得到的点击射线确定屏幕坐标在视景体的近剪裁面的第一投影点,以及操作点在视景体远剪裁面上的第二投影点。
在进行模型变换的反变换后,可以得到与操作点对应的点击射线,该点击射线与进行模型变换的反变换后的视景体近剪裁面的交点即为第一投影点,该点击射线与进行模型变换的反变换后的视景体远剪裁面的交点即为第二投影点。可参见图2b,图2b为图2a所示投影模型进行视口变换的反变换、投影变换的反变换、视图变换的反变换和模型变换的反变换后的示意图。
步骤S13:基于第一投影点和第二投影点构成的第一线段,在三维地形上选取第一栅格,所选取的第一栅格构成第一栅格集合,第一栅格为最有可能被操作点操作的栅格;
本发明实施例中,基于第一投影点和第二投影点构成的第一线段在三维地形中选择最有可能被操作点操作的栅格。
步骤S14:计算第一线段与第一栅格集合中的第一栅格的交点,将计算得到的交点确定为操作点所拾取到的三维地形点。
第一线段可能与第一栅格集合中的多个第一栅格有交点,本发明实施例中,所计算得到的交点为多个可能的交点中的其中一个。
在确定操作点所拾取的三维地形点时,只计算第一线段与所选择的栅格的交点,不仅计算量少,而且更有目的性,因而能够提高计算速度和精度。
本发明实施例提供的三维地形点拾取方法,获取用户操作点在视景体的近剪裁面上的第一投影点,以及操作点在视景体远剪裁面上的第二投影点;基于第一投影点和第二投影点构成的第一线段在三维地形上选取第一栅格集合,该第一栅格集合为最有可能被操作点操作的栅格的集合;计算第一线段与第一栅格集合中第一栅格的交点,将所计算得到的交点确定为操作点所拾取到的三维地形点。也就是说,本发明实施例基于用户操作点在视景体的近裁剪面和远裁剪面上的投影点构成的第一线段选取最有可能被操作点操作的栅格的集合,只计算第一线段与第一栅格集合中的第一栅格的交点来确定操作点所拾取的三维地形点,计算量少,目的性强,从而提高了三维地形点的拾取速度和精度。
可选的,本发明实施例提供的计算第一线段与第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为操作点所拾取到的三维地形点的一种实现流程图如图3所示,可以包括:
步骤S31:按第一栅格集合中第一栅格的排列顺序,顺序计算所第一线段与第一栅格的交点;
本发明实施例中,第一栅格集合中的第一栅格是按照预定的顺序排列的。在计算第一线段与第一栅格的交点时,按照第一栅格的排列顺序,依次计算第一线段与各个第一栅格的交点。
步骤S32:将计算得到的第一个交点确定为操作点所拾取到的三维地形点。
本发明实施例中,第一栅格按照预定的顺序排列,从而将计算得到的第一交点确定为操作点所拾取的三维地形点。
在计算得到第一个交点后,停止计算,即便还有未与第一线段进行计算的第一栅格,也不再计算,以节约计算资源。
第一线段也有可能与第一栅格集合中的任意一个第一栅格都没有交点,说明操作点未拾取到三维地形点。
另外,若第一栅格集合为空集,也说明操作点未拾取到三维地形点。
可选的,本发明实施例提供的基于第一投影点和第二投影点构成的第一线段,在三维地形上选取第一栅格的一种实现流程图如图4所示,可以包括:
步骤S41:将第一线段与三维地形投影到海平面上,得到投影线段和三维地形投影;
由于三维地形是用栅格数据表示的,即,三维地形本身是栅格结构,因此,将三维地形投影到海平面上后,所得到的三维地形的投影也为栅格。而第一线段在海平面上投影也为一线段(为方便叙述,记为投影线段)。为方便描述,将第一投影点记为点A,第二投影点记为点B,第一投影点A在海平面上的投影记为点C,第二投影点B在海平面上的投影记为点D,则,第一线段AB在海平面上的投影线段为CD。具体第一线段AB以及三维地形在海平面上的投影的示例图如图5所示。
步骤S42:获取投影线段在三维地形投影上所经过的第二栅格,所获取的第二栅格构成第二栅格集合;
步骤S43:在三维地形上选取与第二栅格对应第一栅格。
第二栅格是三维地形上的某个栅格在海平面上的投影,通过投影关系,可以在三维地形上确定与第二栅格对应的第一栅格。也就是说,第一栅格集合中的栅格映射到海平面上,就是第二栅格集合。
可选的,在三维地形上选取与第二栅格对应的第一栅格,选取的第一栅格构成第一栅格集合的具体实现方式可以包括:
按照第二栅格集合中第二栅格的排列顺序,在三维地形上选取与第二栅格对应的第一栅格,第一栅格按照选取的先后顺序构成第一栅格集合,先选取的排序在先,后选取的排序在后。
本发明实施例中,第二栅格集合中的第二栅格也是按照预定顺序排列的,在三维地形上选取与第二栅格对应的第一栅格集合时,按照第二栅格中的排序顺序依次选取与每个第二栅格对应的第一栅格集合。因此,第一栅格集合中位于第一排列位置的第一栅格投影到海平面上,得到投影栅格即为第二栅格集合中位于第一排列位置的第二栅格。
可选的,第二栅格集合中的第二栅格可以按照投影线段从起点到终点的方向在三维地形投影上的经过顺序排序,先经过的排序在先,后经过的排序在后;
其中,投影线段的起点是第一投影点在海平面上的投影点,投影线段的终点是第二投影点在海平面上的投影点。
可选的,获取投影线段在三维地形投影上经过的第二栅格的一种实现方式具体可以包括:
沿投影线段的起点到终点的方向,顺序获取投影线段在三维地形投影上经过的第二栅格,第二栅格按照获取的先后顺序构成第二栅格集合,先获取的排序在先,后获取的排序在后;
其中,投影线段的起点是第一投影点在海平面上的投影点,投影线段的终点是第二投影点在海平面上的投影点。
本发明实施例中,第二栅格集合中的栅格是投影线段在三维地形投影上经过的栅格的集合,且第二栅格中的第二栅格按照投影线段从起点到终点的方向经过的顺序排列。
假设投影线段CD在海平面上经过的所有栅格如图6所示,图6为本发明实施例提供的投影线段CD经过海平面上的栅格的一种示例图。图6中,投影线段CD共经过6个栅格,即第二栅格集合包括3-8号栅格,对第二栅格集合中的所有栅格进行排序的方式为:按照从C点开始,线段CD上向D点的方向依次经过栅格的顺序对第二栅格集合中的所有栅格进行排序。基于此,本发明实施例中,图6所示示例中第二栅格集合中栅格的排序依次为:5、6、7、8、3、4。而不是3、4、5、6、7、8,或其它顺序。
还以图6所示示例为例,假设三维地形中与海平面上的3号栅格对应的栅格为a栅格,三维地形中与海平面上的4号栅格对应的栅格为b栅格,三维地形中与海平面上的5号栅格对应的栅格为c栅格,三维地形中与海平面上的6号栅格对应的栅格为d栅格,三维地形中与海平面上的7号栅格对应的栅格为e栅格,三维地形中与海平面上的8号栅格对应的栅格为f栅格,则第一栅格集合中包含的栅格分别为:a栅格,b栅格,c栅格,d栅格,e栅格,f栅格。
第一栅格集合中栅格的排列顺序是:c栅格,d栅格,e栅格,f栅格,a栅格,b栅格。
当计算第一投影点A和第二投影点B构成的线段AB与第一栅格集合中第一栅格的交点时,先计算线段AB与c栅格的交点,再计算线段AB与d栅格的交点,然后计算线段AB与e栅格的交点,之后计算线段AB与f栅格的交点,之后计算线段AB与a栅格的交点,之后计算线段AB与b栅格的交点。
在计算过程中,若计算到线段AB与第一栅格集合中某个栅格存在交点则不再计算线段AB与第一栅格集合中后续栅格的交点。例如,若计算出线段AB与c栅格的交点,则确定线段AB与c栅格的交点为操作点所拾取的三维地形点,不再计算线段AB与第一栅格集合中其它栅格的交点。若线段AB与c栅格没有交点,则计算线段AB与d栅格的交点,若计算出线段AB与d栅格的交点,则确定线段AB与d栅格的交点为操作点所拾取的三维地形点,不再计算线段AB与第一栅格集合中其它栅格的交点,若线段AB与d栅格没有交点,则计算线段AB与e栅格的交点……,依此类推,直至计算出线段AB与第一栅格集合中的栅格的第一个交点,或者,线段AB与第一栅格集合中的所有栅格都没有交点。
可选的,将第一投影点和第二投影点构成的第一线段,以及三维地形投影到海平面上的一种实现方式可以包括:
将第一投影点和第二投影点构成的第一线段,以及三维地形以垂直于海平面的方式投影到海平面上。
本发明实施例中,为了方便计算,将第一投影点和第二投影点构成的第一线段,以及三维地形均以垂直于海平面的方式投影到海平面上。也就是说,投影线以垂直于海平面的方式将第一线段和三维地形投影到海平面上。
与方法实施例相对应,本发明实施例还提供一种三维地形点拾取装置,本发明实施例提供的三维地形点拾取装置的一种结构示意图如图7所示,可以包括:
获取模块71,第一确定模块72,选取模块73和第二确定模块74;其中,
获取模块71用于获取用户在三维地形上的操作点的屏幕坐标;
用户的操作点可以是用户通过鼠标进行点击时的鼠标点击点,也可以是用户通过操做体(如手指、触控笔等)在触摸屏上点击时的触控点。
在电子地图进行显示时,通常根据所需要显示的区域获取该区域的若干地图瓦片的三维地形。电子地图在显示时,显示的是渲染后的三维地形。用户在对电子地图进行操作时,操作点是对显示区域内的某个地图瓦片的三维地形进行操作。
在对三维地形进行渲染时,渲染的过程就是模拟人眼或摄像机成像的过程。较常用的渲染方法是:对三维地形依次进行模型变换,视图变换,投影变换(也称为透视变换)和视口变换,对变换后的数字地图模型进行渲染,其中,后一个变换是在前一个变换的基础上进行。
其中,在进行投影变换时,会基于如图2a所示的投影模型,其中,在近剪裁面和远剪裁面之间的区域为视点的可视区域(即视景体)。即在图2a所示的视点位置可以看到近剪裁面和远剪裁面之间的区域内的场景(即三维地形所展现的场景)。
第一确定模块72用于基于屏幕坐标确定操作点在三维地形的视景体的近剪裁面上的第一投影点,以及操作点在视景体远剪裁面上的第二投影点;
可选的,可以对操作点的屏幕坐标依次进行视口变换的反变换、投影变换的反变换、视图变换的反变换和模型变换的反变换,其中,后一反变换是在并一反变换的基础上进行的;
依据进行模型变换的反变换后得到的点击射线确定屏幕坐标在视景体的近剪裁面的第一投影点,以及操作点在视景体远剪裁面上的第二投影点。
在进行模型变换的反变换后,可以得到与操作点对应的点击射线,该点击射线与进行模型变换的反变换后的视景体近剪裁面的交点即为第一投影点,该点击射线与进行模型变换的反变换后的视景体远剪裁面的交点即为第二投影点。可参见图2b,图2b为图2a所示投影模型进行视图变换的反变换和模型变换的反变换后的示意图。
选取模块73用于基于第一投影点和第二投影点构成的第一线段,在三维地形上选取第一栅格,所选取的第一栅格构成第一栅格集合,第一栅格为最有可能被操作点操作的栅格的集合;
本发明实施例中,基于第一投影点和第二投影点构成的第一线段在三维地形中选择最有可能被操作点操作的栅格。
第二确定模块74用于计算第一线段与第一栅格集合中的第一栅格的交点,将计算得到的交点确定为操作点所拾取到的三维地形点。
第一线段可能与第一栅格集合中的多个第一栅格有交点,本发明实施例中,所计算得到的交点为多个可能的交点中的其中一个。
在确定操作点所拾取的三维地形点时,只计算第一线段与所选择的栅格的交点,不仅计算量少,而且更有目的性,因而能够提高计算速度和精度。
本发明实施例提供的三维地形点拾取装置,获取用户操作点在视景体的近剪裁面上的第一投影点,以及操作点在视景体远剪裁面上的第二投影点;基于第一投影点和第二投影点构成的第一线段在三维地形上选取第一栅格集合,该第一栅格集合为最有可能被操作点操作的栅格的集合;计算第一线段与第一栅格集合中第一栅格的交点,将所计算得到的交点确定为操作点所拾取到的三维地形点。也就是说,本发明实施例基于用户操作点在视景体的近裁剪面和远裁剪面上的投影点构成的第一线段选取最有可能被操作点操作的栅格的集合,只计算第一线段与第一栅格集合中的第一栅格的交点来确定操作点所拾取的三维地形点,计算量少,目的性强,从而提高了三维地形点的拾取速度和精度。
可选的,本发明实施例提供的第二确定模块74的一种结构示意图如图8所示,可以包括:
计算单元81和第一确定单元82;其中,
计算单元81用于按第一栅格集合中第一栅格的排列顺序,顺序计算第一线段与第一栅格的交点;
本发明实施例中,第一栅格集合中的第一栅格是按照预定的顺序排列的。在计算第一线段与第一栅格的交点时,按照第一栅格的排列顺序,依次计算第一线段与各个第一栅格的交点。
第一确定单元82用于将计算得到的第一个交点确定为操作点所拾取到的三维地形点。
本发明实施例中,第一栅格按照预定的顺序排列,从而将计算得到的第一交点确定为操作点所拾取的三维地形点。
在计算得到第一个交点后,计算单元81可以停止计算,即便还有未与第一线段进行计算的第一栅格,也不再计算,以节约计算资源。
第一线段也有可能与第一栅格集合中的任意一个第一栅格都没有交点,说明操作点未拾取到三维地形点。
另外,若第一栅格集合为空集,也说明操作点未拾取到三维地形点。
可选的,本发明实施例提供的选取模块73的一种结构示意图如图9所示,可以包括:
投影单元91,获取单元92和选取单元93;其中,
投影单元91用于将第一线段与三维地形投影到海平面上,得到投影线段和三维地形投影;
可选的,由于三维地形是用栅格数据表示的,即,三维地形本身是栅格结构,因此,将三维地形投影到海平面上后,所得到的三维地形投影也为栅格。而第一线段在海平面上投影也为一线段(为方便叙述,记为投影线段)。为方便描述,将第一投影点记为点A,第二投影点记为点B,第一投影点A在海平面上的投影记为点C,第二投影点B在海平面上的投影记为点D,则,第一线段AB在海平面上的投影线段为CD。具体第一线段AB以及三维地形在海平面上的投影的示例图如图5所示。
获取单元92用于获取投影线段在三维地形投影上经过的第二栅格,所获取第二栅格构成第二栅格集合;
选取单元93用于在所述三维地形上选取与所述第二栅格对应的第一栅格,所选取的第一栅格构成第一栅格集合。
第二栅格是三维地形上的某个栅格在海平面上的投影,通过投影关系,可以在三维地形上确定与第二栅格对应的第一栅格。也就是说,第一栅格集合中的栅格映射到海平面上,就是第二栅格集合。
可选的,选取单元93具体可以包括:
选择子单元,用于按照第二栅格集合中第二栅格的排列顺序,在三维地形上选取与第二栅格对应的第一栅格,第一栅格按照选取的先后顺序构成第一栅格集合,先选取的排序在先,后选取的排序在后。
本发明实施例中,第二栅格集合中的第二栅格也是按照预定顺序排列的,在三维地形上选取与第二栅格对应的第一栅格集合时,按照第二栅格中的排序顺序依次选取与每个第二栅格对应的第一栅格集合。因此,第一栅格集合中位于第一排列位置的第一栅格投影到海平面上,得到投影栅格即为第二栅格集合中位于第一排列位置的第二栅格。
可选的,第二栅格集合中的第二栅格可以按照投影线段从起点到终点的方向在三维地形投影上的经过顺序排序,先经过的排序在先,后经过的排序在后;
其中,投影线段的起点是第一投影点在海平面上的投影点,投影线段的终点是第二投影点在海平面上的投影点。
可选的,获取单元92可以包括:
获取子单元,用于沿投影线段的起点到终点的方向,顺序获取投影线段在三维地形投影上经过的第二栅格,第二栅格按照获取的先后顺序构成第二栅格集合,先获取的排序在先,后获取的排序在后;
其中,投影线段的起点是第一投影点在海平面上的投影点,投影线段的终点是第二投影点在海平面上的投影点。
本发明实施例中,第二栅格集合中的栅格是投影线段在三维地形投影上经过的栅格的集合,且第二栅格中的第二栅格按照投影线段从起点到终点的方向经过的顺序排列。
假设投影线段CD在海平面上经过的所有栅格如图6所示,图6为本发明实施例提供的投影线段CD经过海平面上的栅格的一种示例图。图6中,投影线段CD共经过6个栅格,即第二栅格集合包括3-8号栅格,对第二栅格集合中的所有栅格进行排序的方式为:按照从C点开始,线段CD上向D点的方向依次经过栅格的顺序对第二栅格集合中的所有栅格进行排序。基于此,本发明实施例中,图6所示示例中第二栅格集合中的栅格的排序依次为:5、6、7、8、3、4。而不是3、4、5、6、7、8,或其它顺序。
还以图6所示示例为例,假设三维地形中与海平面上的3号栅格对应的栅格为a栅格,三维地形中与海平面上的4号栅格对应的栅格为b栅格,三维地形中与海平面上的5号栅格对应的栅格为c栅格,三维地形中与海平面上的6号栅格对应的栅格为d栅格,三维地形中与海平面上的7号栅格对应的栅格为e栅格,三维地形中与海平面上的8号栅格对应的栅格为f栅格,则第一栅格集合中包含的栅格分别为:a栅格,b栅格,c栅格,d栅格,e栅格,f栅格。
第一栅格集合中栅格的排列顺序是:c栅格,d栅格,e栅格,f栅格,a栅格,b栅格。
当计算第一投影点A和第二投影点B构成的线段AB与第一栅格集合中第一栅格的交点时,先计算线段AB与c栅格的交点,再计算线段AB与d栅格的交点,然后计算线段AB与e栅格的交点,之后计算线段AB与f栅格的交点,之后计算线段AB与a栅格的交点,之后计算线段AB与b栅格的交点。
在计算过程中,若计算到线段AB与第一栅格集合中某个栅格存在交点则不再计算线段AB与第一栅格集合中后续栅格的交点。例如,若计算出线段AB与c栅格的交点,则确定线段AB与c栅格的交点为操作点所拾取的三维地形点,不再计算线段AB与第一栅格集合中其它栅格的交点。若线段AB与c栅格没有交点,则计算线段AB与d栅格的交点,若计算出线段AB与d栅格的交点,则确定线段AB与d栅格的交点为操作点所拾取的三维地形点,不再计算线段AB与第一栅格集合中其它栅格的交点,若线段AB与d栅格没有交点,则计算线段AB与e栅格的交点……,依此类推,直至计算出线段AB与第一栅格集合中的栅格的第一个交点,或者,线段AB与第一栅格集合中的所有栅格都没有交点。
可选的,投影单元91具体可以用于,将第一投影点和第二投影点构成的第一线段,以及三维地形以垂直于海平面的方式投影到海平面上。
本发明实施例中,为了方便计算,将第一投影点和第二投影点构成的第一线段,以及三维地形均以垂直于海平面的方式投影到海平面上。也就是说,投影线以垂直于海平面的方式将第一线段和三维地形投影到海平面上。
可选的,本发明实施例提供的第一确定模块72的一种结构示意图如图10所示,可以包括:
变换单元101,用于对屏幕坐标进行视口变换的反变换,然后在对屏幕坐标进行视口变换的反变换的基础上进行投影变换的反变换,再在投影变换的反变换的基础上进行视图变换的反变换,最后在视图变换的反变换的基础上进行模型变换的反变换;
第二确定单元102,用于依据模型变换的反变换后得到的点击射线确定屏幕坐标在视景体的近剪裁面的第一投影点,以及屏幕坐标在所述视景体远剪裁面上的第二投影点。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种三维地形点拾取方法,其特征在于,包括:
获取用户在三维地形上的操作点的屏幕坐标;
基于所述屏幕坐标确定所述操作点在三维地形的视景体的近剪裁面上的第一投影点,以及所述操作点在所述视景体的远剪裁面上的第二投影点;
基于所述第一投影点和所述第二投影点构成的第一线段,在所述三维地形上选取第一栅格,所选取的第一栅格构成第一栅格集合,所述第一栅格为最有可能被所述操作点操作的栅格;
计算所述第一线段与所述第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为所述操作点所拾取到的三维地形点;
其中,所述计算所述第一线段与所述第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为所述操作点所拾取到的三维地形点包括:
按第一栅格集合中第一栅格的排列顺序,顺序计算所述第一线段与所述第一栅格的交点;
将计算得到的第一个交点确定为所述操作点所拾取到的三维地形点;
所述基于所述第一投影点和所述第二投影点构成的第一线段,在所述三维地形上选取第一栅格包括:
将所述第一线段与所述三维地形投影到海平面上,得到投影线段和三维地形投影;
获取所述投影线段在所述三维地形投影上经过的第二栅格,所获取第二栅格构成第二栅格集合;
在所述三维地形上选取与所述第二栅格对应的第一栅格。
2.根据权利要求1所述的方法,其特征在于,在所述三维地形上选取与所述第二栅格对应的第一栅格,所述选取的第一栅格构成第一栅格集合具体包括:
按照第二栅格集合中第二栅格的排列顺序,在所述三维地形上选取与所述第二栅格对应的第一栅格,所述第一栅格按照选取的先后顺序构成第一栅格集合,先选取的排序在先,后选取的排序在后。
3.根据权利要求2所述的方法,其特征在于,获取所述投影线段在所述三维地形投影上经过的第二栅格具体包括:
沿所述投影线段的起点到终点的方向,顺序获取所述投影线段在所述三维地形投影上经过的第二栅格,第二栅格按照获取的先后顺序构成第二栅格集合,先获取的排序在先,后获取的排序在后;
所述起点是所述第一投影点在海平面上的投影点,所述终点是所述第二投影点在海平面上的投影点。
4.根据权利要求2所述的方法,其特征在于,第二栅格集合中的第二栅格按照所述投影线段从起点到终点的方向在所述三维地形投影上的经过顺序排序,先经过的排序在先,后经过的排序在后;
所述起点是所述第一投影点在海平面上的投影点,所述终点是所述第二投影点在海平面上的投影点。
5.根据权利要求1或2所述的方法,其特征在于,所述基于所述屏幕坐标确定所述操作点在视景体的近剪裁面上的第一投影点,以及所述操作点在所述视景体远剪裁面上的第二投影点包括:
对所述屏幕坐标进行视口变换的反变换,然后在对所述屏幕坐标进行视口变换的反变换的基础上进行投影变换的反变换,再在所述投影变换的反变换的基础上进行视图变换的反变换,最后在所述视图变换的反变换的基础上进行模型变换的反变换;
依据模型变换的反变换后得到的点击射线确定所述屏幕坐标在视景体的近剪裁面的第一投影点,以及所述屏幕坐标在所述视景体远剪裁面上的第二投影点。
6.一种三维地形点拾取装置,其特征在于,包括:
获取模块,用于获取用户在三维地形上的操作点的屏幕坐标;
第一确定模块,用于基于所述屏幕坐标确定所述操作点在三维地形的视景体的近剪裁面上的第一投影点,以及所述操作点在所述视景体的远剪裁面上的第二投影点;
选取模块,用于基于所述第一投影点和所述第二投影点构成的第一线段,在所述三维地形上选取第一栅格,所选取的第一栅格构成第一栅格集合,所述第一栅格为最有可能被所述操作点操作的栅格;
第二确定模块,用于计算所述第一线段与所述第一栅格集合中的第一栅格的交点,将所计算得到的交点确定为所述操作点所拾取到的三维地形点;
其中,所述第二确定模块包括:
计算单元,用于按第一栅格集合中第一栅格的排列顺序,顺序计算所述第一线段与所述第一栅格的交点;
第一确定单元,用于将计算得到的第一个交点确定为所述操作点所拾取到的三维地形点;
所述选取模块包括:
投影单元,用于将所述第一线段与所述三维地形投影到海平面上,得到投影线段和三维地形投影;
获取单元,用于获取所述投影线段在所述三维地形投影上经过的第二栅格,所获取第二栅格构成第二栅格集合;
选取单元,用于在所述三维地形上选取与所述第二栅格对应的第一栅格,所选取的第一栅格构成第一栅格集合。
7.根据权利要求6所述的装置,其特征在于,所述选取单元包括:
选取子单元,用于按照第二栅格集合中第二栅格的排列顺序,在所述三维地形上选取与所述第二栅格对应的第一栅格,所述第一栅格按照选取的先后顺序构成第一栅格集合,先选取的排序在先,后选取的排序在后。
8.根据权利要求7所述的装置,其特征在于,所述获取单元包括:
获取子单元,用于沿所述投影线段的起点到终点的方向,顺序获取所述投影线段在所述三维地形投影上经过的第二栅格,第二栅格按照获取的先后顺序构成第二栅格集合,先获取的排序在先,后获取的排序在后;
所述起点是所述第一投影点在海平面上的投影点,所述终点是所述第二投影点在海平面上的投影点。
9.根据权利要求7所述的装置,其特征在于,第二栅格集合中的第二栅格按照所述投影线段从起点到终点的方向在所述三维地形投影上的经过顺序排序,先经过的排序在先,后经过的排序在后;
所述起点是所述第一投影点在海平面上的投影点,所述终点是所述第二投影点在海平面上的投影点。
10.根据权利要求6或7所述的装置,其特征在于,所述第一确定模块包括:
变换单元,用于对所述屏幕坐标进行视口变换的反变换,然后在对所述屏幕坐标进行视口变换的反变换的基础上进行投影变换的反变换,再在所述投影变换的反变换的基础上进行视图变换的反变换,最后在所述视图变换的反变换的基础上进行模型变换的反变换;
第二确定单元,用于依据模型变换的反变换后得到的点击射线确定所述屏幕坐标在视景体的近剪裁面的第一投影点,以及所述屏幕坐标在所述视景体远剪裁面上的第二投影点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510700871.9A CN106611443B (zh) | 2015-10-26 | 2015-10-26 | 三维地形点拾取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510700871.9A CN106611443B (zh) | 2015-10-26 | 2015-10-26 | 三维地形点拾取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106611443A CN106611443A (zh) | 2017-05-03 |
CN106611443B true CN106611443B (zh) | 2020-02-21 |
Family
ID=58613693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510700871.9A Active CN106611443B (zh) | 2015-10-26 | 2015-10-26 | 三维地形点拾取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106611443B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107748643A (zh) * | 2017-11-10 | 2018-03-02 | 济南迅捷万通科技发展有限公司 | 一种基于地下三维空间的交互式对象拾取方法 |
CN109316739B (zh) * | 2018-12-07 | 2022-05-03 | 网易(杭州)网络有限公司 | 一种游戏场景中的三维位置选取方法和装置 |
CN110989886B (zh) * | 2019-11-29 | 2022-05-27 | 广州海格星航信息科技有限公司 | 基于空间地图的三维空间网格选取方法及装置 |
CN111135562B (zh) * | 2019-12-25 | 2023-10-20 | 北京像素软件科技股份有限公司 | 地块拾取方法、装置、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101477562A (zh) * | 2009-01-04 | 2009-07-08 | 北京师范大学 | 一种3dgis中多分辨率自适应注记的方法 |
CN101727679A (zh) * | 2008-10-20 | 2010-06-09 | 车德福 | 三维地质模型中任意点交互选取的辅助线段滑块法 |
CN102819865A (zh) * | 2012-08-09 | 2012-12-12 | 成都理工大学 | 一种大地电磁三维地质结构模型的建模方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102446192A (zh) * | 2010-09-30 | 2012-05-09 | 国际商业机器公司 | 在虚拟世界中评估关注度的方法和装置 |
-
2015
- 2015-10-26 CN CN201510700871.9A patent/CN106611443B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101727679A (zh) * | 2008-10-20 | 2010-06-09 | 车德福 | 三维地质模型中任意点交互选取的辅助线段滑块法 |
CN101477562A (zh) * | 2009-01-04 | 2009-07-08 | 北京师范大学 | 一种3dgis中多分辨率自适应注记的方法 |
CN102819865A (zh) * | 2012-08-09 | 2012-12-12 | 成都理工大学 | 一种大地电磁三维地质结构模型的建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106611443A (zh) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842438B2 (en) | Method and terminal device for determining occluded area of virtual object | |
CN105493154B (zh) | 用于确定增强现实环境中的平面的范围的系统和方法 | |
CN106611443B (zh) | 三维地形点拾取方法及装置 | |
CN107515714B (zh) | 一种手指触控识别方法、装置和触控投影设备 | |
US20140253679A1 (en) | Depth measurement quality enhancement | |
US20110110557A1 (en) | Geo-locating an Object from Images or Videos | |
CN110926334B (zh) | 测量方法、装置、电子设备及存储介质 | |
CN112927309B (zh) | 一种车载相机标定方法、装置、车载相机及存储介质 | |
CN107851329B (zh) | 基于多个模型显示对象 | |
US20130127852A1 (en) | Methods for providing 3d building information | |
US20230260216A1 (en) | Point cloud annotation device, method, and program | |
CN112904369B (zh) | 机器人重定位方法、装置、机器人和计算机可读存储介质 | |
CN112729327A (zh) | 一种导航方法、装置、计算机设备及存储介质 | |
CN108665472A (zh) | 点云分割的方法和设备 | |
CN107688189B (zh) | 一种gps经纬度坐标的校准方法、装置和移动运动设备 | |
CN109767391A (zh) | 点云去噪方法、图像处理设备及具有存储功能的装置 | |
CN106575193B (zh) | 用于深度摄影系统中的图像位置选择 | |
CN111145328B (zh) | 三维文字表面纹理坐标计算方法、介质、设备及装置 | |
CN106919247B (zh) | 虚拟影像展示方法及装置 | |
CN113034582A (zh) | 位姿优化装置及方法、电子设备及计算机可读存储介质 | |
CN105807936B (zh) | 信息处理方法及电子设备 | |
CN110298320B (zh) | 一种视觉定位方法、装置及存储介质 | |
CN105205786A (zh) | 一种图像深度恢复方法及电子设备 | |
EP3059663A1 (en) | A method for interacting with virtual objects in a three-dimensional space and a system for interacting with virtual objects in a three-dimensional space | |
CN104732570B (zh) | 一种图像生成方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200511 Address after: 310052 room 508, floor 5, building 4, No. 699, Wangshang Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Alibaba (China) Co.,Ltd. Address before: 100080 Beijing City, Haidian District Suzhou Street No. 3 floor 16 room 2 Patentee before: AUTONAVI INFORMATION TECHNOLOGY Co.,Ltd. |