CN101727679A - 三维地质模型中任意点交互选取的辅助线段滑块法 - Google Patents

三维地质模型中任意点交互选取的辅助线段滑块法 Download PDF

Info

Publication number
CN101727679A
CN101727679A CN200810051292A CN200810051292A CN101727679A CN 101727679 A CN101727679 A CN 101727679A CN 200810051292 A CN200810051292 A CN 200810051292A CN 200810051292 A CN200810051292 A CN 200810051292A CN 101727679 A CN101727679 A CN 101727679A
Authority
CN
China
Prior art keywords
point
screen
straight line
geological model
coordinate
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
CN200810051292A
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN200810051292A priority Critical patent/CN101727679A/zh
Publication of CN101727679A publication Critical patent/CN101727679A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明属于地质测绘领域,尤其涉及一种三维地质模型中任意点交互选取的辅助线段滑块法。本发明的技术方案为:1、屏幕捕捉点到选取直线的转换;2、三维地质模型中辅助线段的建立;3、通过辅助线段的获得,可以计算出辅助线段上两端点Pi和Pj的三维物体坐标,设Pi的坐标为(xi,yi,zi),Pj的坐标为(xi,yi,zi),则在物体坐标系下从Pi到Pj三维坐标的变化是线性的(在屏幕坐标系则不一定),通过设计一个滑块在辅助线段上自由移动,则可实现辅助线段上任意点的交互选取。通过本方法实现了三维地质模型中任意空间点的交互精确选取。

Description

三维地质模型中任意点交互选取的辅助线段滑块法
技术领域
本发明属于地质测绘领域,尤其涉及一种三维地质模型中任意点交互选取的辅助线段滑块法。
背景技术
三维地质模型的交互可视化与空间分析是当前地学领域最为广泛的研究方向之一,其实现的关键是模型中任意点的空间精确定位。由于鼠标所捕捉到的计算机屏幕像点(x,y)与三维空间坐标(X,Y,Z)不具备唯一对应关系,从而使得这项工作的难度大为增加。
发明内容
为了解决上述问题,本发明提出了一种三维地质模型中任意点交互选取的辅助线段滑块法。本发明采用广义三棱柱(GTP)构建的三维地质模型,包括(1)构建地表面TIN;(2)扩展生成GTP;(3)转换剖分GTP。本发明的技术方案为:1、屏幕捕捉点到选取直线的转换,通过鼠标点击屏幕上三维地质模型表面点,可以获得该点的屏幕窗口坐标(Winx,Winy)。在三维屏幕坐标系中,上述鼠标点击屏幕所选中的实际是一条由屏幕垂直向里的直线,我们称之为选取直线,只有完成屏幕点向选取直线的转换,才能实现三维地质模型中任意点的选取;2、三维地质模型中辅助线段的建立,获得选取直线后,即可计算直线与地质模型的交点,从而建立辅助线段,由于所建的三维地质模型是由GTP剖分而成的四面体集合所组成,物体坐标系下选取直线与地质模型的求交实际上是直线与三角形的求交过程。为提高求交效率,增强交互的实时性,这个过程可分为两步,第一步是先判断直线与三角形是否有交点;第二步是如果有交点,再计算具体的交点。3、通过辅助线段的获得,可以计算出辅助线段上两端点Pi和Pj的三维物体坐标,设Pi的坐标为(xi,yi,zi),Pj的坐标为(xi,yi,zi),则在物体坐标系下从Pi到Pj三维坐标的变化是线性的(在屏幕坐标系则不一定),通过设计一个滑块在辅助线段上自由移动,则可实现辅助线段上任意点的交互选取。
通过本方法实现了三维地质模型中任意空间点的交互精确选取。
附图说明
图1为空间透视投影
图2为辅助线段滑块法的实现
具体实施方式
如图1、图2所示:1、屏幕捕捉点到选取直线的转换,通过鼠标点击屏幕上三维地质模型表面点,可以获得该点的屏幕窗口坐标(Winx,Winy)。在三维屏幕坐标系中,上述鼠标点击屏幕所选中的实际是一条由屏幕垂直向里的直线,我们称之为选取直线,只有完成屏幕点向选取直线的转换,才能实现三维地质模型中任意点的选取,进行三维地质模型的显示时采用的是OpenGL中透视投影的方法,这个过程类似于用一台相机拍摄照片,相机所在的位置就是我们的眼睛所在的视点V位置,前裁剪面ABCD就是屏幕所在的位置,后裁剪面A’B’C’D’就是能看到的最远处,后裁剪面和前裁剪面构成了平截台体ABCD A’B’C’D’,后裁剪面与视点之间的棱锥就是视锥体V A’B’C’D’。只有落在平截台体内的物体在屏幕上才能显示,平截台体以外的物体将被裁剪掉。透视坐标系原点位于屏幕中心水平向右为x轴正方向,竖直向上为y轴正方向,z轴的正向垂直于屏幕向里。OpenGL把z窗口坐标的取值按[0,1]处理,即位于前裁剪面ABCD上z值为0,而在后裁剪面A’B’C’D’上z值为1.0。由上面鼠标点击屏幕所选中的(Winx,Winy),可以方便地得到屏幕坐标系直线上两点(Winx,Winy,0)和(Winx,Winy,1)。三维地质模型中的点变换到屏幕上的像素点,要依次经过模型变换、视图变换、透视投影变换、视口变换等一系列过程;相应的从真实的三维空间坐标变换到窗口坐标需要经过世界坐标系、人眼坐标系、透视坐标系、设备坐标系和窗口坐标系等多种坐标系的转换。从屏幕窗口坐标变换到物体坐标则是其逆过程。OpenGL提供了两个函数gluUnProject()和gluProject(),用以实现屏幕坐标与物体三维坐标之间的变换。由于三维地质模型在实际的可视化操作中,可能经历了一系列的变换,要计算这些变换并不是很容易的事。由OpenGL提供的两个函数glGetDoublev()和glGetInteger(),可以使这些变换变得相当容易,其中glGetDoublev()用于获得当前的模型矩阵,glGetInteger()用于获得当前的投影矩阵。将这两个函数所获得的参数代入函数gluUnProject(),可以将上述两屏幕坐标点转换为对应物体坐标中的两点,从而得到对应选取直线OO’。2、三维地质模型中辅助线段的建立,获得选取直线后,即可计算直线与地质模型的交点,从而建立辅助线段,由于所建的三维地质模型是由GTP剖分而成的四面体集合所组成,物体坐标系下选取直线与地质模型的求交实际上是直线与三角形的求交过程。为提高求交效率,增强交互的实时性,这个过程可分为两步,第一步是先判断直线与三角形是否有交点;第二步是如果有交点,再计算具体的交点。对于第一步,只需将空间三角形投影到屏幕,然后判断物体坐标系点Q(屏幕坐标系下的点P变换而成)在屏幕上的投影是否在三角形内。在二维坐标系下,判断一个点是否在三角形可采用矢量面积法[8]。经过第一步的判断后,如果一个空间三角形T{v1,v2,v3}(v1,v2,v3是组成该三角形的3个顶点)和选取直线有交点,则可根据空间直线与三角形的求交算法计算交点,其实现的伪代码如下:
//鼠标点击的屏幕点坐标保存在CPoint类型变量point中;
glGetDoublev求得模型矩阵、视图矩阵、投影矩阵;
gluUnProject将(point.x,point.y,0)及上述求的各矩阵传给gluUnProject得到0’的三维坐标;
gluUnProject将(point.x,point.y,1.0)及上述求的各矩阵传给gluUnProject得0的三维坐标;
  triangle=三角形链表头;
  while(triangle!=三角形的链表尾)
{
  for(三角形的三个顶点)
  {用函数gluProject将三角形triangle顶点转化为屏幕坐标保存在数组p[i]中;}
    if(p[0]、p[1]、p[2]组成的三角形是包含点point)
    {利用空间解析几何知识计算空间直线OO’与三角形triangle交点的三维坐标,保存在坐标
结构数组pickpoint[i]中,该三角形三个顶点转化为屏幕坐标的z坐标的平均值保存在数组z[i]
中:}
经过上述计算,将得到一系列与地质模型的交点,称作交点集。与选取直线OO’存在交点的三角形屏幕坐标的z值已保存在数组z[i]中,z[i]的大小代表在当前状况下三角形距离屏幕的远近,可以按照z[i]的大小进行空间点的排序。交点集排序具体实现的代码如下:for(int i=1;i<=n;i++)//n为交点集的个数
{
   for(intj=1;j<=n-i;j++)
   {
     if(z[j]>z[j+1])
     {
     z1=z[j];//z1为过渡变量
     temp=pickpoint[j];//temp过渡变量
     z[j]=z[j+1];
     pickpoint[j]=pickpoint[j+1];
      z[j+1]=z1;
     pickpoint[j+1]=temp;
     }
    }
}
通过对交点集的排序,交点集中z[i]最小的点就是离屏幕最近的点Pi,最大的点就是离屏幕最远的点Pj,PiPj为选取直线与地质模型求交后获得的线段,称为辅助线段。3、通过辅助线段的获得,可以计算出辅助线段上两端点Pi和Pj的三维物体坐标,设Pi的坐标为(xi,yi,zi),Pj的坐标为(xi,yi,zi),则在物体坐标系下从Pi到Pj三维坐标的变化是线性的(在屏幕坐标系则不一定),通过设计一个滑块在辅助线段上自由移动,则可实现辅助线段上任意点的交互选取。设鼠标在辅助线段上滑动到某一点Pm(xm,ym,zm),该点与Pi距离为dm,则由空间解析几何知识可以求得Pm的物体坐标(xi,yi,zi)为:
x m = d m x j + ( d - d m ) x i d y m = d m y j + ( d - d m ) y i d z m = d m z j + ( d - d m ) z i d
其中d为辅助线段PiPj的长度, d = ( x j - x i ) 2 + ( y j - y i ) 2 + ( z j - z i ) 2
图2为辅助线段滑块法实现图。图中屏幕左侧为地质模型显示窗口,右侧为信息显示窗口。通过鼠标指示箭头在左侧窗口内的地质模型表面任意选定一点时,则建立了由所选点向内的一条选取直线。通过上面的算法由程序自动计算选取直线穿过每一地层距离与总的距离,按相应的比例和颜色显示在右侧窗口地层条上。地层条即为辅助线段,它显示了辅助线所经过的相应地层属性与厚度信息。在地层条上设置一个滑块,其初始位置在滑动条的最上端,即三维地质模型的表面。通过滑块的位置与地层条长度比较,可以显示此时选取的点在地层内的空间位置,指示箭头随着滑块的滑动则沿辅助线段在三维地质模型中滑动,相应的三维坐标也显示在右侧窗口中。根据显示的待选点的三维坐标信息,滑动到相应位置时停止滑动,按确定按扭,则完成了地质模型中空间点的交互精确选取。

Claims (1)

1.一种三维地质模型中任意点交互选取的辅助线段滑块法,采用广义三棱柱(GTP)构建的三维地质模型,包括(1)构建地表面TIN;(2)扩展生成GTP;(3)转换剖分GTP,其特征在于:1、屏幕捕捉点到选取直线的转换,通过鼠标点击屏幕上三维地质模型表面点,可以获得该点的屏幕窗口坐标(Winx,Winy),在三维屏幕坐标系中,上述鼠标点击屏幕所选中的实际是一条由屏幕垂直向里的直线,我们称之为选取直线,只有完成屏幕点向选取直线的转换,才能实现三维地质模型中任意点的选取;2、三维地质模型中辅助线段的建立,获得选取直线后,即可计算直线与地质模型的交点,从而建立辅助线段,由于所建的三维地质模型是由GTP剖分而成的四面体集合所组成,物体坐标系下选取直线与地质模型的求交实际上是直线与三角形的求交过程。为提高求交效率,增强交互的实时性,这个过程可分为两步,第一步是先判断直线与三角形是否有交点;第二步是如果有交点,再计算具体的交点;3、通过辅助线段的获得,可以计算出辅助线段上两端点Pi和Pj的三维物体坐标,设Pi的坐标为(Xi,yi,zi),Pj的坐标为(xi,yi,zi),则在物体坐标系下从Pi到Pj三维坐标的变化是线性的(在屏幕坐标系则不一定),通过设计一个滑块在辅助线段上自由移动,则可实现辅助线段上任意点的交互选取。
CN200810051292A 2008-10-20 2008-10-20 三维地质模型中任意点交互选取的辅助线段滑块法 Pending CN101727679A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810051292A CN101727679A (zh) 2008-10-20 2008-10-20 三维地质模型中任意点交互选取的辅助线段滑块法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810051292A CN101727679A (zh) 2008-10-20 2008-10-20 三维地质模型中任意点交互选取的辅助线段滑块法

Publications (1)

Publication Number Publication Date
CN101727679A true CN101727679A (zh) 2010-06-09

Family

ID=42448530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810051292A Pending CN101727679A (zh) 2008-10-20 2008-10-20 三维地质模型中任意点交互选取的辅助线段滑块法

Country Status (1)

Country Link
CN (1) CN101727679A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164586A (zh) * 2013-04-10 2013-06-19 中国矿业大学 基于组件的矿井巷道整体拼接算法
CN104104936A (zh) * 2013-04-05 2014-10-15 三星电子株式会社 用于形成光场图像的设备和方法
CN104318618A (zh) * 2014-10-20 2015-01-28 南京师范大学 一种广义三棱柱空间数据模型的三维剖切方法
CN106611443A (zh) * 2015-10-26 2017-05-03 高德信息技术有限公司 三维地形点拾取方法及装置
CN107330890A (zh) * 2017-07-14 2017-11-07 漳州市东方智能仪表有限公司 智能视觉的三维地质滑动崩塌实时监测系统及其方法
CN109316739A (zh) * 2018-12-07 2019-02-12 网易(杭州)网络有限公司 一种游戏场景中的三维位置选取方法和装置
CN112765702A (zh) * 2020-12-23 2021-05-07 深圳小库科技有限公司 一种建筑辅助线捕捉的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104104936A (zh) * 2013-04-05 2014-10-15 三星电子株式会社 用于形成光场图像的设备和方法
CN103164586A (zh) * 2013-04-10 2013-06-19 中国矿业大学 基于组件的矿井巷道整体拼接算法
CN103164586B (zh) * 2013-04-10 2015-11-04 中国矿业大学 基于组件的矿井巷道整体拼接方法
CN104318618A (zh) * 2014-10-20 2015-01-28 南京师范大学 一种广义三棱柱空间数据模型的三维剖切方法
CN104318618B (zh) * 2014-10-20 2017-05-10 南京师范大学 一种广义三棱柱空间数据模型的三维剖切方法
CN106611443A (zh) * 2015-10-26 2017-05-03 高德信息技术有限公司 三维地形点拾取方法及装置
CN106611443B (zh) * 2015-10-26 2020-02-21 高德信息技术有限公司 三维地形点拾取方法及装置
CN107330890A (zh) * 2017-07-14 2017-11-07 漳州市东方智能仪表有限公司 智能视觉的三维地质滑动崩塌实时监测系统及其方法
CN109316739A (zh) * 2018-12-07 2019-02-12 网易(杭州)网络有限公司 一种游戏场景中的三维位置选取方法和装置
CN109316739B (zh) * 2018-12-07 2022-05-03 网易(杭州)网络有限公司 一种游戏场景中的三维位置选取方法和装置
CN112765702A (zh) * 2020-12-23 2021-05-07 深圳小库科技有限公司 一种建筑辅助线捕捉的方法及装置
CN112765702B (zh) * 2020-12-23 2023-10-03 深圳小库科技有限公司 一种建筑辅助线捕捉的方法及装置

Similar Documents

Publication Publication Date Title
CN101727679A (zh) 三维地质模型中任意点交互选取的辅助线段滑块法
CN104077804B (zh) 一种基于多帧视频图像构建三维人脸模型的方法
CN104589356B (zh) 基于Kinect人手运动捕捉的灵巧手遥操作控制方法
CN102880866B (zh) 一种人脸特征提取方法
CN100543775C (zh) 基于多目相机的三维人体运动跟踪的方法
CN101404091B (zh) 基于两步形状建模的三维人脸重建方法和系统
CN106600583A (zh) 基于端到端神经网络的视差图获取方法
CN108416840A (zh) 一种基于单目相机的三维场景稠密重建方法
CN104036488B (zh) 一种基于双目视觉的人体姿态动作研究方法
CN104123747B (zh) 多方式触控三维建模方法和系统
CN110335337A (zh) 一种基于端到端半监督生成对抗网络的视觉里程计的方法
CN107578436A (zh) 一种基于全卷积神经网络fcn的单目图像深度估计方法
CN101303772A (zh) 一种基于单幅图像的非线性三维人脸建模方法
CN110399809A (zh) 多特征融合的人脸关键点检测方法及装置
CN106826833A (zh) 基于3d立体感知技术的自主导航机器人系统
CN101916454A (zh) 基于网格变形和连续优化的高分辨率人脸重建方法
CN106780573B (zh) 一种全景图特征匹配精度优化的方法及系统
CN104517317A (zh) 一种车载红外图像三维重建方法
CN104599305B (zh) 一种二三维结合的动画生成方法
CN107330973A (zh) 一种基于多视角监督的单视角重建方法
CN107861625A (zh) 基于3d空间模型的视线跟踪系统及方法
CN113421328B (zh) 一种三维人体虚拟化重建方法及装置
CN110223382A (zh) 基于深度学习的单帧图像自由视点三维模型重建方法
CN114119884A (zh) 一种基于高分七号卫星影像的建筑物lod1模型构建方法
CN102270345A (zh) 基于第二代条带波变换图像特征表示和人体运动跟踪方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20100609