三维地形点拾取方法及装置技术领域
本发明涉及电子地图技术领域,更具体的说,是涉及一种三维地形点拾
取方法及装置。
背景技术
交互应用是大多数软件产品的基本需求,而在三维化产品中,交互应用
不可避免的需要用到三维拾取技术。在电子地图中渲染三维地形是电子地图
的发展趋势,现有技术可以通过数字地面模型(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、或技术领域内所公知的
任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用
本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易
见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,
在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,
而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。