CN112764651B - 一种浏览器端三维点云剖面绘制方法和绘制系统 - Google Patents
一种浏览器端三维点云剖面绘制方法和绘制系统 Download PDFInfo
- Publication number
- CN112764651B CN112764651B CN202110136559.7A CN202110136559A CN112764651B CN 112764651 B CN112764651 B CN 112764651B CN 202110136559 A CN202110136559 A CN 202110136559A CN 112764651 B CN112764651 B CN 112764651B
- Authority
- CN
- China
- Prior art keywords
- point
- point cloud
- observation
- calculating
- coordinate system
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种浏览器端三维点云剖面绘制方法和绘制系统,其中绘制方法包括:1、在浏览器端加载点云以及点云所在的三维场景;2、用户浏览三维场景,通过不共线的三个点击点确定待绘制点云的范围;3、计算三维场景中三个点击点的坐标并转换到本地坐标系下;根据本地坐标系中三个点击点在地面的投影,获取待绘制点云在地面的矩形投影区域,经过矩形投影区域4条边且垂直于地面的4个平面即为待绘制点云的4个剖面;4、设置观察目标点,计算观察视点的位置和观察参数;在浏览器端的点云剖面展示窗口加载并绘制所述4个剖面的点云。该方法能够实时响应用户在浏览器端通过点击点确定的点云剖面绘制范围,并允许用户对剖面进行三维旋转操作。
Description
技术领域
本发明属于摄影测量中三维点云数据展示领域,具有涉及一种在浏览器端绘制三维点云剖面的方法和系统。
背景技术
机载LiDAR(Light Detection And Ranging,激光雷达)是当前测绘领域效率最高、发展最快的大面积测绘手段之一。通过使用激光器发射和接收高能激光脉冲来测距,GNSS(Global Navigation Satellite System,全球导航卫星系统)接收机给出激光器实时位置,INS(Inertial Navigation System,惯性导航系统)给出激光器实时三维姿态,可利用向量公式和坐标转换计算出散射面的三维坐标。借助机械扫描装置,机载LiDAR可以实现大面积面状测量。目前,机载LiDAR的发射频率普遍高达数百KHZ以上乃至2000KHZ。这意味着,在不考虑多回波和无回波的情况下,一秒钟激光雷达可采集数十万乃至数百万点。因此,机载LiDAR可以在短时间内获得海量的点,称为点云。
传统的点云剖面绘制方法主要依托于客户端/服务器(C/S)架构软件,使用Java、Qt、C/C++等开发语言开发,基于GDI、OpenGL等接口,需要单独安装专业的处理软件,例如Terrasolid等,对操作人员的操作熟练度和专业水平有一定的需求,另一方面,传统的剖面绘制方法为在一个显示主体上绘制二维剖面,观察角度既已确定,无法对其进行360度多角度全方位观察,观察角度改变时需要重新绘制,重新绘制导致工作量增加,并需要耗费时间。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种浏览器端三维点云剖面绘制方法,该方法实时响应用户在浏览器端通过点击点确定的点云剖面绘制范围,并允许用户对剖面进行三维旋转操作,以解决现有点云剖面绘制需要安装专业处理软件、操作复杂、响应时间长等问题。
技术方案:本发明一方面公开了一种浏览器端三维点云剖面绘制方法,包括:
S1、在浏览器端加载点云以及点云所在的三维场景;
S2、用户浏览三维场景,通过不共线的三个点击点确定待绘制点云的范围;
S3、计算三维场景中用户三个点击点的坐标并转换到本地坐标系下,分别记为A、B、C;
所述本地坐标系OlXlYlZl的原点Ol为所述点云的中心,Xl正向为原点Ol指向正东,Yl轴正向为原点Ol指向正北,Zl轴正向为过原点Ol处地球切面向上;
根据A、B、C三点在地面的投影,获取待绘制点云在地面的投影区域,所述投影区域为矩形,所述矩形的一条边为A、B在地面投影点之间的线段,点C在地面的投影点位于所述线段的对边;
计算分别经过所述投影区域4条边且垂直于地面的4个平面,所述4个平面即为待绘制点云的4个剖面;
所述三维场景中的坐标系0eXeYeZe为笛卡尔坐标系,其原点0e为地球几何中心,Xe轴为0e到赤道上经度为0的点的射线,Ye轴为0e指向赤道上经度为东经90°的点的射线,Ze轴为0e指向地球北极的射线;
S4、设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数;根据观察视点的位置和观察参数,在浏览器端的点云剖面展示窗口加载并绘制所述4个剖面的点云。
所述步骤S3中,用户点击点在三维场景中坐标的计算方法为:
获取用户浏览三维场景时的视点位置Camera,计算从视点Camera出发经过点击点P'的射线与地物表面点云的第一个交点P,点P为用户点击点P'在三维场景中的坐标。
所述步骤S3中,将三维场景中点击点P的坐标(PX,PY,PZ)转换到本地坐标系下,包括:
(PXl,PYl,PZl,1)=(PX,PY,PZ,1)×Φtrans×ΦrotZ×ΦrotX
三维场景中点击点P在本地坐标系下的坐标为(PXl,PYl,PZl)。
所述步骤S3中,计算待绘制点云的4个剖面,步骤包括:
S3-1、计算经过A、B,且与地面垂直的平面,为第一点云剖面;
S3-2、计算经过点C,且与第一点云剖面平行的平面,为第二点云剖面;
S3-3、计算点A、B在第二点云剖面的投影点D、E;经过点A、D,且与地面垂直的平面,为第三点云剖面;经过点B、E,且与地面垂直的平面,为第四点云剖面。
所述步骤S4中设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数,包括:
S4-1、将步骤S3得到的4个点云剖面、点A和B所在的平行于地面的两个平面所围合的长方体区域作为观察目标区域,所述观察目标区域的几何中心为待绘制点云的观察目标点I;
S4-2、计算观察视点的方向角:
观察视点到观察目标点的射线在OlXlYl面的投影与Yl正向的夹角为观察视点的方向角,其计算步骤为:
计算观察视点的方向角Heading:
S4-3、计算从观察目标点I到观察视点K的移动向量:
S4-3-1、计算从观察目标点I到观察视点K的归一化方向向量:
其中a为视点的水平视场角大小,||AXOYBXOY||为点A和B在地面的投影点AXOY和BXOY之间的距离;
其中(XI,YI,ZI)为观察目标点I在本地坐标系中的坐标值,(XK,YK,ZK)为观察视点在本地坐标系中的坐标值;
S4-5、将观察视点在本地坐标系中的坐标转换为三维场景笛卡尔坐标系中的坐标。
另一方面,本发明还公开了一种浏览器端三维点云剖面绘制系统,包括:
点云和三维场景加载模块1,用于在浏览器端加载点云以及点云所在的三维场景,并构建本地坐标系OlXlYlZl;所述本地坐标系的原点Ol为所述点云的中心,Xl正向为原点Ol指向正东,Yl轴正向为原点Ol指向正北,Zl轴正向为过原点Ol处地球切面向上;
待绘制点云范围确定模块2,用于根据用户浏览三维场景时不共线的三个点击点确定待绘制点云的范围;
矩形投影区域确定模块3,用于计算三维场景中用户三个点击点的坐标并转换到本地坐标系下,分别记为A、B、C;根据A、B、C三点在地面的投影,获取待绘制点云在地面的投影区域,所述投影区域为矩形,所述矩形的一条边为A、B在地面投影点之间的线段,点C在地面的投影点位于所述线段的对边;
剖面计算模块4,用于计算分别经过所述投影区域4条边且垂直于地面的4个平面,所述4个平面即为待绘制点云的4个剖面;
观察视点和观察参数计算模块5,用于设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数;根据观察视点的位置和观察参数,在浏览器端的点云剖面展示窗口加载并绘制所述4个剖面的点云。
有益效果:本发明公开浏览器端三维点云剖面绘制方法能够实时响应用户在浏览器端通过点击点自定义的点云剖面绘制范围,并允许用户对剖面进行三维旋转操作,以解决现有点云剖面绘制需要安装专业处理软件、操作复杂、响应时间长等问题,提高数据分析效率,可广泛应用于三维仿真技术领域。
附图说明
图1为本发明公开浏览器端三维点云剖面绘制方法的流程图;
图2为剖面设置的顶视图;
图3为用户点击点在三维场景中的坐标计算示意图;
图4为三维场景笛卡尔坐标系与本地坐标系示意图;
图5为三维场景笛卡尔坐标系与本地坐标系转换示意图;
图6为用户点击点与四个点云剖面的关系示意图;
图7为观察视点参数示意图;
图8为观察视点方向向量计算示意图;
图9为本发明公开的浏览器端三维点云剖面绘制系统的组成图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明。
本发明公开了一种浏览器端三维点云剖面绘制方法,如图1所示,包括:
S1、在浏览器端加载点云以及点云所在的三维场景;
原始点云数据通常为LAS格式数据,该格式是LiDAR数据的工业标准格式。本实施例中,服务器将LAS格式的点云数据进行处理,转换为携带金字塔层级结构的数据,便于快速浏览,之后通过GIS数据服务引擎将处理后的点云数据发布为数据服务,供浏览器读取。浏览器通过读取数据服务加载点云数据,和点云所在的三维场景。
浏览器在显示加载的点云时,为了呈现较好的视觉效果,本实施例中对点云根据其属性进行不同的渲染。点云中点的属性包括回波强度、第几次回波、数据采集时间、激光脉冲打到的散射面的物理性质(如植被、地面、水体等)等。针对这些属性,可以采用多种渲染方式,本实施例所采用的渲染方法有:
(1)对点云大小进行设置,如对不同回波强度的点云采用不同大小的点进行显示;
(2)对点云颜色进行设置,可以采用直接设置点云颜色或依据属性计算点云颜色两种方式:
直接设置点云颜色:如根据地物类别可以将点云划分为地面、低矮植物、一般高度植物、高大植物、建筑、噪音、水面、未分类;根据第几次回波进行划分可以将点云划分为第一次回波、第二次回波、第三次回波、第四次回波、第五次回波、第六次回波等,这些划分方式得到的类别数量是固定的,可以采用分别设置每种类别点云的颜色即可实现分类渲染。如植被采用绿色,水体采用蓝色,建筑物采用灰色,地面采用棕色;类别的颜色直接设置,可以保存在配置文件中,需要时直接读取;
依据属性计算点云颜色:如点云的某一属性取值范围较大或取值连续,无法获得固定数量的类别,如回波强度从0-65535变化。此时采用的是对该属性进行分段,采用插值设定不同分段内的渲染颜色。本实施例中,将回波强度划分为22个分段数,系统将其从灰度到白色进行插值设定不同强度值范围的渲染颜色。根据高程属性渲染颜色与此类似,区别在于采用彩色分段渲染。首先通过服务提供端读取点云高程最大最小值,然后系统将这个区间分为22个分段区间,每个分段区间采用彩色渲染过渡方案插值算法求取渲染彩色颜色值。本实施例中彩色渲染过渡方案为:蓝->青->绿->黄->红,整个过程分为四部分:蓝->青过程为保持蓝色分量不动,绿色分量逐渐增大,青->绿过程为保持绿色分量不动,蓝色分类逐渐减小,绿->黄过程为保持绿色分量不动,红色分量逐渐增加,黄->红过程为保持红色分量不动,绿色分量逐渐减小。设置颜色分量变化的步长值,计算每个分段区间的RGB值。
点云加载后,计算点云的中心,调整当前视场角,使视点定位到点云的中心,便于查看全部点云数据。构建本地坐标系OlXlYlZl,所述本地坐标系的原点Ol为所述点云的中心,Xl正向为原点Ol指向正东,Yl轴正向为原点Ol指向正北,Zl轴正向为过原点Ol处地球切面向上。在本地坐标系下能够以较好的角度查看点云。
S2、用户浏览三维场景,通过不共线的三个点击点确定待绘制点云的范围;
通常情况下,将屏幕上三维场景设置为垂直地面向下看的角度,用户在屏幕上点击来设置待绘制点云的范围。如图2所示,在点云的顶视图中,用户通过三个点击点P1、P2、P3来定义了待绘制点云的区域,图中灰色矩形中,其四个边所在的垂直于地面的平面对点云进行切割,4个切割面为待绘制点云的剖面。
S3、计算三维场景中用户三个点击点的坐标并转换到本地坐标系下,分别记为A、B、C;
由于屏幕为二维,三维场景中的所有物体都会经过坐标变换映射为屏幕上的二维坐标,用户在屏幕上点击,会有三维场景中的坐标与之对应,该坐标受用户点击点在屏幕的二维坐标和当前视点位置的影响,用户点击点在三维场景中坐标的计算方法为:
获取用户浏览三维场景时的视点位置Camera,计算从视点Camera出发经过点击点P'的射线与地物表面点云的第一个交点P,点P为用户点击点P'在三维场景中的坐标。如图3所示,在图3-(a)中的场景中,点Camera为视点,P'为用户点击点在地球表面上的位置,从Camera到P'的射线与地物表面的第一个交点为P,则P为P'在三维场景中的点;从视点Camera来看地物表面,看到的是点P,而不是用户点击点P'。
三维场景通常用空间笛卡尔坐标系来定义点的位置,即三维场景中的坐标系0eXeYeZe为笛卡尔坐标系,其原点0e为地球几何中心,Xe轴为0e到赤道上经度为0的点的射线,Ye轴为0e指向赤道上经度为东经90°的点的射线,Ze轴为0e指向地球北极的射线。如图4所示,为三维场景笛卡尔坐标系和本地坐标系的示意图。由于点云是本地坐标系下查看,需要将用户的三个点击点转换到本地坐标系下。
将三维场景中点击点P的坐标(PX,PY,PZ)转换到本地坐标系下,包括:
(PXl,PYl,PZl,1)=(PX,PY,PZ,1)×Φtrans×ΦrotZ×ΦrotX (1)
三维场景中点击点P在本地坐标系下的坐标为(PXl,PYl,PZl)。
图5中,图5-(a)为平移示意图,三维场景坐标系0eXeYeZe平移后形成OmXmYmZm坐标系,0eXeYeZe与OmXmYmZm的各坐标轴平行,方向相同,但原点位置不同;图5-(b)为水平旋转示意图,OmXmYmZm绕Zm轴旋转,形成坐标系Or1Xr1Yr1Zr1,其原点Or1与Om相同,Zr1轴与Zm轴相同;图5-(c)为竖直旋转示意图,坐标系Or1Xr1Yr1Zr1绕Xr1轴旋转,形成坐标系OlXlYlZl,其原点仍为Om,Xl轴与Xr1轴相同,由此实现了三维场景坐标系到本地坐标系的转换,坐标系中的点按相同方式进行坐标变换。
根据A、B、C三点在地面的投影,获取待绘制点云在地面的投影区域,所述投影区域为矩形,所述矩形的一条边为A、B在地面投影点之间的线段,点C在地面的投影点位于所述线段的对边;
计算分别经过所述投影区域4条边且垂直于地面的4个平面,所述4个平面即为待绘制点云的4个剖面;
如图6所示,地面上由A、B、C三点限定的矩形投影区域,其4个剖面如图6-(b)中的4个垂直面所示。图6-(b)中,灰色的底面为地面矩形投影区域,4个剖面分别为:
经过A、B,且与地面垂直的平面,为第一点云剖面;经过点C,且与第一点云剖面平行的平面,为第二点云剖面;点A、B在第二点云剖面的投影点分别为D、E;经过点A、D,且与地面垂直的平面,为第三点云剖面;经过点B、E,且与地面垂直的平面,为第四点云剖面。这四个点云剖面围合的范围为待绘制点云,在点云剖面展示窗口中绘制。
利用立体几何知识计算4个剖面有多种方法,本实施例采用平面的单位法向量和原点到平面的距离来构建平面。计算待绘制点云的4个剖面,步骤包括:
S3-1、计算第一点云剖面Plane1;
S3-1-1、计算第一点云剖面的单位法向量;
设A、B、C三点在本地坐标系下的坐标分别为(XA,YA,ZA)、(XB,YB,ZB)(XC,YC,ZC)。
根据第一点云剖面上与A、B不共线的点T,计算第一点云剖面的法向量;点T的本地坐标系坐标记为(XT,YT,ZT),本实施例中点T按如下设置:
ZT=1000000
即T点的XY坐标为线段AB的中点,Z轴坐标为一个很大值,这样保证求得的平面为过AB且垂直于地面的平面。
将点A、点B、点T坐标带入式(2)得到法向量记为Plane1nor。
实际需要的法向量受到C点与AB向量的位置关系影响:
C点在面ABT右侧,保留面ABT右侧区域,法向量在面ABT右侧;
C点在面ABT左侧,保留面ABT左侧区域,法向量在面ABT左侧;
所以实际Plane1的法向量需要再乘以C点到面ABT的距离,当C点在面ABT的右侧时,C点到面ABT的距离为正数,Plane1的法向量乘以该距离以后方向不变,在面ABT右侧;当C点在面ABT左侧时,C点到面ABT的距离为负数,Plane1的法向量乘以该距离以后方向与原来相反,在面ABT左侧。C点到面ABT的距离计算依据点到平面距离计算式(6)。
假设空间三个不共线点坐标分别为(X1,Y1,Z1),(X2,Y2,Z2),(X3,Y3,Z3),过这三个点的平面为:
αX+βY+γZ+λ=0 (4)
其参数计算公式:
则点p(Xp,Yp,Zp)到该平面的距离为:
当点在平面右侧,距离符号为正,反之为负。
将点A、点B、点T在本地坐标系下的坐标作为(X1,Y1,Z1),(X2,Y2,Z2),(X3,Y3,Z3),根据式(5)求得Plane1的平面方程各项参数记为Parsplane1,将点C坐标作为p(Xp,Yp,Zp),代入式(6)求得C点到面ABT距离,记为disC-ABT。
为了进行空间向量的缩放,需要先对向量进行归一化处理,归一化操作的结果是在保持向量方向不变的前提下,将向量的模变为1,归一化后的向量为单位向量。归一化的公式:
假设向量为(x,y,z):则归一化之后向量为:
该向量与原向量方向相同,模为1
对空间向量的缩放方法是先对空间向量进行归一化处理变为单位向量,然后叉乘缩放变换矩阵,单位向量每个分量缩放n倍的变换矩阵为:
变换后的Plane1法向量的求解方法如下:
对Plane1nor向量运用式(7)进行归一化处理成为单位向量,记为Plane1nor-unit;
根据式(8)构建缩放disC-ABT倍的变换矩阵S(disC-ABT),Plane1nor-unit叉乘S(disC-ABT)得到缩放后的法向量,记为Plane1nor-scale;对Plane1nor-scale再次运用式(7)进行归一化处理成为单位向量,记为Plane1nor-scale-unit,即为第一点云剖面的单位法向量。
步骤3-1-2、计算原点Ol到第一点云剖面的距离:
求原点即点云中心点Ol到面Plane1的距离:将原点坐标(0,0,0)、面Plane1的平面方程参数Parsplane1代入式(6),即可求得原点(点云中心点)到面Plane1的距离,记为disO-ABT;
原点Ol到面Plane1距离的变换:点云剖面的设置需要两个参数,分别为以点云中心点为原点的本地坐标系下剖面所在的平面,以及从点云中心点到剖面所在平面的距离,距离为正代表沿平面法向量负方向,距离为负代表沿平面法向量正方向,所以距离需要乘以一个符号,这个符号就是C点到AB向量的距离的符号。距离变换方法如下所示:
Plane1dis=disO-ABT*[disC-ABT/abs(disC-ABT)] (9)
其中abs()为求绝对值,Plane1dis为最终计算结果。
根据步骤3-1-1和步骤3-1-2求得的面Plane1单位法向量Plane1nor-scale-unit和原点到该面距离Plane1dis,即可创建第一点云剖面。
S3-2、计算第二点云剖面Plane2;
步骤3-2-1、Plane2的法向量与Plane1的法向量共线相反,所以运用式(8)将Plane1nor-scale-unit缩放-1倍即可得到Plane2的法向量,记为Plane2nor-scale-unit。
步骤3-2-2、计算原点Ol到Plane2的距离:
Plane2dis=(disC-ABT-disO-ABT)*[disC-ABT/abs(disC-ABT)]
计算结果记为Plane2dis。
根据步骤3-2-1和步骤3-2-2求得的面Plane2单位法向量Plane2nor-scale-unit和原点到该面距离Plane2dis,即可创建第二点云剖面。
S3-3、计算第三点云剖面Plane3和第四点云剖面Plane4;
如图6-(b)所示,点A、B在第二点云剖面的投影点分别为D、E;将A点的本地坐标系坐标各分量加上Plane1nor-scale中各分量得到D点坐标记为(XD,YD,ZD),同理,将B点的本地坐标系坐标各分量加上Plane1nor-scale中各分量得到E点坐标记为(XE,YE,ZE)。
计算过点A、点D并垂直于地面的平面作为第三点云剖面Plane3,已知点A和点D在本地坐标系下的坐标,计算方法与Plane1的计算方法相同。计算过程中,点B相当于Plane1计算过程中的点C,即点C与向量AD的位置关系影响到Plane3法向量的方向。
计算过点B、点E并垂直于地面的平面作为第四点云剖面Plane4。计算过程与步骤S3-2计算第二点云剖面Plane2的过程类似。
S4、设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数;包括:
S4-1、将步骤S3得到的4个点云剖面、点A和B所在的平行于地面的两个平面所围合的长方体区域作为观察目标区域,所述观察目标区域的几何中心为待绘制点云的观察目标点I;如图7-(a)所示,为观察目标区域的顶视图,图中K为观察视点的位置。如图6-(b)所示,设线段AE的中点为M1,线段BD的中点为M2,则观察目标点的位置为线段M1M2的中点I。
S4-2、计算观察视点的方向角:
观察视点到观察目标点的射线在OlXlYl面的投影与Yl正向的夹角为观察视点的方向角,如图7-(a)所示;其计算步骤为:
由于Arcsin函数在0-360°范围内不是单调的,所以实际方向角需要在此基础上做变换,观察视点的方向角Heading:
S4-3、计算从观察目标点I到观察视点K的移动向量:
在摄影学中,视场角或视角(angle of view)是在一般环境中,相机可以接收影像的角度范围,也可以常被称为视野。在观察时,视点的视场角可以理解为视点可以观察到的场景的角度范围。在本发明中,分为水平视场角和垂直视场角,如图7-(b)所示,视点为K,水平视场角为角LHKRH,即为角a;垂直视场角为角TVKBV,即为角b;观察视点K、水平视场角、垂直视场角共同构建一个视椎体,视椎体内的物体经过深度裁剪都会投影到二维绘制区域中。在本发明中,为了使观察目标点I出现在屏幕绘制区域的中间,且图7-(a)中FG线段在水平方向占满屏幕绘制区域,所以按照如下方式计算。如图7-(a)所示,角FKG大小为水平视场角,固定为60°,已知I点坐标,只要求得向量IK,则可以求得K点的坐标。
S4-3-1、计算从观察目标点I到观察视点K的归一化方向向量;
图8中,坐标轴Yl′为过视点K,且平行于Yl轴。向量IK的方向矢量为KI的反方向矢量,角Yl′KI为方向角Heading,此处需要求出角XlKL,将角XlKL记为角d,其中KL为KI的反方向,角d的大小为:
已知角d大小,则从观察目标点I到观察视点K的方向向量为:
带入角d的值,得:
其中(XI,YI,ZI)为观察目标点I在本地坐标系中的坐标值,(XK,YK,ZK)为观察视点在本地坐标系中的坐标值。
S4-5、将观察视点在本地坐标系中的坐标转换为三维场景笛卡尔坐标系中的坐标。
在浏览器端的点云剖面展示窗口加载三维场景,读取GIS数据服务引擎发布的数据服务,根据观察视点的位置和观察参数,加载并绘制所述4个剖面的点云。其中观察参数包括视点的方向角Heading、倾斜角(本发明中设为0)和翻滚角(本发明中设为0)。
本发明还公开了实现上述浏览器端三维点云剖面绘制方法的绘制系统,如图9所示,包括:
点云和三维场景加载模块1,用于在浏览器端加载点云以及点云所在的三维场景,并构建本地坐标系OlXlYlZl;所述本地坐标系的原点Ol为所述点云的中心,Xl正向为原点Ol指向正东,Yl轴正向为原点Ol指向正北,Zl轴正向为过原点Ol处地球切面向上;
待绘制点云范围确定模块2,用于根据用户浏览三维场景时不共线的三个点击点确定待绘制点云的范围;
矩形投影区域确定模块3,用于计算三维场景中用户三个点击点的坐标并转换到本地坐标系下,分别记为A、B、C;根据A、B、C三点在地面的投影,获取待绘制点云在地面的投影区域,所述投影区域为矩形,所述矩形的一条边为A、B在地面投影点之间的线段,点C在地面的投影点位于所述线段的对边;
剖面计算模块4,用于计算分别经过所述投影区域4条边且垂直于地面的4个平面,所述4个平面即为待绘制点云的4个剖面;
观察视点和观察参数计算模块5,用于设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数;根据观察视点的位置和观察参数,在浏览器端的点云剖面展示窗口绘制所述4个剖面的点云。
矩形投影区域确定模块3中,用户点击点在三维场景中坐标的计算方法为:
获取用户浏览三维场景时的视点位置Camera,计算从视点Camera出发经过点击点P'的射线与地物表面点云的第一个交点P,点P为用户点击点P'在三维场景中的坐标。
剖面计算模块4按照步骤S3-1至S3-3计算待绘制点云的4个剖面。
观察视点和观察参数计算模块5按照步骤S4-1至S4-5设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数。
本发明公开的浏览器端三维点云剖面绘制系统采用浏览器/服务器(B/S)架构,原始点云数据由服务器处理为浏览器可识别操作的三维数据,允许用户直接在浏览器端绘制剖面顶视图,操作简单,并能够实时响应,二维剖面附加了厚度,使其呈现三维要素的特点,便于用户进行三维操作,这种新的架构和实现方式不仅降低了用户操作的难度、要素间耦合性和错误的扩散范围,而且提升了显示效率。
Claims (8)
1.一种浏览器端三维点云剖面绘制方法,其特征在于,包括以下步骤:
S1、在浏览器端加载点云以及点云所在的三维场景;
S2、用户浏览三维场景,通过不共线的三个点击点确定待绘制点云的范围;
S3、计算三维场景中用户三个点击点的坐标并转换到本地坐标系下,分别记为A、B、C;
所述本地坐标系OlXlYlZl的原点Ol为所述点云的中心,Xl正向为原点Ol指向正东,Yl轴正向为原点Ol指向正北,Zl轴正向为过原点Ol处地球切面向上;
根据A、B、C三点在地面的投影,获取待绘制点云在地面的投影区域,所述投影区域为矩形,所述矩形的一条边为A、B在地面投影点之间的线段,点C在地面的投影点位于所述线段的对边;
计算分别经过所述投影区域4条边且垂直于地面的4个平面,所述4个平面即为待绘制点云的4个剖面;
所述三维场景中的坐标系0eXeYeZe为笛卡尔坐标系,其原点0e为地球几何中心,Xe轴为0e到赤道上经度为0的点的射线,Ye轴为0e指向赤道上经度为东经90°的点的射线,Ze轴为0e指向地球北极的射线;
S4、设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数;根据观察视点的位置和观察参数,在浏览器端的点云剖面展示窗口加载并绘制所述4个剖面的点云;
所述步骤S4中设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数,包括:
S4-1、将步骤S3得到的4个点云剖面、点A和B所在的平行于地面的两个平面所围合的长方体区域作为观察目标区域,所述观察目标区域的几何中心为待绘制点云的观察目标点I;
S4-2、计算观察视点的方向角:
观察视点到观察目标点的射线在OlXlYl面的投影与Yl正向的夹角为观察视点的方向角,其计算步骤为:
计算观察视点的方向角Heading:
S4-3、计算从观察目标点I到观察视点K的移动向量:
S4-3-1、计算从观察目标点I到观察视点K的归一化方向向量:
其中a为视点的水平视场角大小,||AXOYBXOY||为点A和B在地面的投影点AXOY和BXOY之间的距离;
其中(XI,YI,ZI)为观察目标点I在本地坐标系中的坐标值,(XK,YK,ZK)为观察视点在本地坐标系中的坐标值;
S4-5、将观察视点在本地坐标系中的坐标转换为三维场景笛卡尔坐标系中的坐标。
2.根据权利要求1所述的浏览器端三维点云剖面绘制方法,其特征在于,所述步骤S3中,用户点击点在三维场景中坐标的计算方法为:
获取用户浏览三维场景时的视点位置Camera,计算从视点Camera出发经过点击点P'的射线与地物表面点云的第一个交点P,点P为用户点击点P'在三维场景中的坐标。
3.根据权利要求1所述的浏览器端三维点云剖面绘制方法,其特征在于,所述步骤S3中,将三维场景中点击点P的坐标(PX,PY,PZ)转换到本地坐标系下,包括:
(PXl,PYl,PZl,1)=(PX,PY,PZ,1)×Φtrans×ΦrotZ×ΦrotX
三维场景中点击点P在本地坐标系下的坐标为(PXl,PYl,PZl)。
4.根据权利要求1所述的浏览器端三维点云剖面绘制方法,其特征在于,所述步骤S3中,计算待绘制点云的4个剖面,步骤包括:
S3-1、计算经过A、B,且与地面垂直的平面,为第一点云剖面;
S3-2、计算经过点C,且与第一点云剖面平行的平面,为第二点云剖面;
S3-3、计算点A、B在第二点云剖面的投影点D、E;经过点A、D,且与地面垂直的平面,为第三点云剖面;经过点B、E,且与地面垂直的平面,为第四点云剖面。
5.一种浏览器端三维点云剖面绘制系统,其特征在于,包括:
点云和三维场景加载模块(1),用于在浏览器端加载点云以及点云所在的三维场景,并构建本地坐标系OlXlYlZl;所述本地坐标系的原点Ol为所述点云的中心,Xl正向为原点Ol指向正东,Yl轴正向为原点Ol指向正北,Zl轴正向为过原点Ol处地球切面向上;
待绘制点云范围确定模块(2),用于根据用户浏览三维场景时不共线的三个点击点确定待绘制点云的范围;
矩形投影区域确定模块(3),用于计算三维场景中用户三个点击点的坐标并转换到本地坐标系下,分别记为A、B、C;根据A、B、C三点在地面的投影,获取待绘制点云在地面的投影区域,所述投影区域为矩形,所述矩形的一条边为A、B在地面投影点之间的线段,点C在地面的投影点位于所述线段的对边;
剖面计算模块(4),用于计算分别经过所述投影区域4条边且垂直于地面的4个平面,所述4个平面即为待绘制点云的4个剖面;
观察视点和观察参数计算模块(5),用于设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数;根据观察视点的位置和观察参数,在浏览器端的点云剖面展示窗口加载并绘制所述4个剖面的点云;
所述观察视点和观察参数计算模块(5)中设置待绘制点云中的观察目标点,计算观察视点的位置和观察参数的步骤为:
S4-1、将剖面计算模块(4)得到的4个点云剖面、点A和B所在的平行于地面的两个平面所围合的长方体区域作为观察目标区域,所述观察目标区域的几何中心为待绘制点云的观察目标点I;
S4-2、计算观察视点的方向角:
观察视点到观察目标点的射线在OlXlYl面的投影与Yl正向的夹角为观察视点的方向角,其计算步骤为:
计算观察视点的方向角Heading:
S4-3、计算从观察目标点I到观察视点K的移动向量:
S4-3-1、计算从观察目标点I到观察视点K的归一化方向向量:
其中a为视点的水平视场角大小,||AXOYBXOY||为点A和B在地面的投影点AXOY和BXOY之间的距离;
其中(XI,YI,ZI)为观察目标点I在本地坐标系中的坐标值,(XK,YK,ZK)为观察视点在本地坐标系中的坐标值;
S4-5、将观察视点在本地坐标系中的坐标转换为三维场景笛卡尔坐标系中的坐标。
6.根据权利要求5所述的浏览器端三维点云剖面绘制系统,其特征在于,所述矩形投影区域确定模块(3)中,用户点击点在三维场景中坐标的计算方法为:
获取用户浏览三维场景时的视点位置Camera,计算从视点Camera出发经过点击点P'的射线与地物表面点云的第一个交点P,点P为用户点击点P'在三维场景中的坐标。
7.根据权利要求5所述的浏览器端三维点云剖面绘制系统,其特征在于,所述矩形投影区域确定模块(3)中,将三维场景中点击点P的坐标(PX,PY,PZ)转换到本地坐标系下,包括:
(PXl,PYl,PZl,1)=(PX,PY,PZ,1)×Φtrans×ΦrotZ×ΦrotX
三维场景中点击点P在本地坐标系下的坐标为(PXl,PYl,PZl)。
8.根据权利要求5所述的浏览器端三维点云剖面绘制系统,其特征在于,所述剖面计算模块(4)中,计算待绘制点云的4个剖面,步骤包括:
S3-1、计算经过A、B,且与地面垂直的平面,为第一点云剖面;
S3-2、计算经过点C,且与第一点云剖面平行的平面,为第二点云剖面;
S3-3、计算点A、B在第二点云剖面的投影点D、E;经过点A、D,且与地面垂直的平面,为第三点云剖面;经过点B、E,且与地面垂直的平面,为第四点云剖面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110136559.7A CN112764651B (zh) | 2021-02-01 | 2021-02-01 | 一种浏览器端三维点云剖面绘制方法和绘制系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110136559.7A CN112764651B (zh) | 2021-02-01 | 2021-02-01 | 一种浏览器端三维点云剖面绘制方法和绘制系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112764651A CN112764651A (zh) | 2021-05-07 |
CN112764651B true CN112764651B (zh) | 2022-03-08 |
Family
ID=75704446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110136559.7A Active CN112764651B (zh) | 2021-02-01 | 2021-02-01 | 一种浏览器端三维点云剖面绘制方法和绘制系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112764651B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109035406A (zh) * | 2018-06-28 | 2018-12-18 | 中国地震局地震预测研究所 | 一种用于建筑物分析的点云数据处理方法 |
CN110288638A (zh) * | 2019-06-18 | 2019-09-27 | 济南大学 | 一种断骨模型粗配准方法、系统及断骨模型配准方法 |
CN111915723A (zh) * | 2020-08-14 | 2020-11-10 | 广东申义实业投资有限公司 | 一种用于室内的三维全景构建方法和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109945845A (zh) * | 2019-02-02 | 2019-06-28 | 南京林业大学 | 一种私家园林空间数字化测绘和三维可视化方法 |
CN112150603B (zh) * | 2019-06-28 | 2023-03-28 | 上海交通大学 | 基于三维点云的初始视角控制和呈现方法及系统 |
CN110660027B (zh) * | 2019-08-28 | 2023-03-31 | 青岛秀山移动测量有限公司 | 一种针对复杂地形的激光点云连续剖面地面滤波方法 |
CN110717983B (zh) * | 2019-09-07 | 2023-05-02 | 苏州工业园区测绘地理信息有限公司 | 一种基于背包式三维激光点云数据的建筑物立面三维重建方法 |
CN111062255A (zh) * | 2019-11-18 | 2020-04-24 | 苏州智加科技有限公司 | 三维点云的标注方法、装置、设备及存储介质 |
CN111080799A (zh) * | 2019-12-04 | 2020-04-28 | 广东康云科技有限公司 | 基于三维建模的场景漫游方法、系统、装置和存储介质 |
CN112132950B (zh) * | 2020-08-13 | 2024-01-26 | 中国地质大学(武汉) | 一种基于众包图像的三维点云场景更新方法 |
-
2021
- 2021-02-01 CN CN202110136559.7A patent/CN112764651B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109035406A (zh) * | 2018-06-28 | 2018-12-18 | 中国地震局地震预测研究所 | 一种用于建筑物分析的点云数据处理方法 |
CN110288638A (zh) * | 2019-06-18 | 2019-09-27 | 济南大学 | 一种断骨模型粗配准方法、系统及断骨模型配准方法 |
CN111915723A (zh) * | 2020-08-14 | 2020-11-10 | 广东申义实业投资有限公司 | 一种用于室内的三维全景构建方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112764651A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8649632B2 (en) | System and method for correlating oblique images to 3D building models | |
US9330504B2 (en) | 3D building model construction tools | |
US10297074B2 (en) | Three-dimensional modeling from optical capture | |
US8249302B2 (en) | Method for determining a location from images acquired of an environment with an omni-directional camera | |
US7583275B2 (en) | Modeling and video projection for augmented virtual environments | |
US6690370B2 (en) | Vision system computer modeling apparatus including interaction with real scenes with respect to perspective and spatial relationship as measured in real-time | |
US20080036758A1 (en) | Systems and methods for determining a global or local position of a point of interest within a scene using a three-dimensional model of the scene | |
US7301497B2 (en) | Stereo display for position sensing systems | |
JP2008134224A (ja) | 三次元レーダー像のレンダリングのための装置及び方法 | |
Gomez-Jauregui et al. | Quantitative evaluation of overlaying discrepancies in mobile augmented reality applications for AEC/FM | |
US8395760B2 (en) | Unified spectral and geospatial information model and the method and system generating it | |
EP3220355A1 (en) | Image processing apparatus, image processing method, and image processing program | |
Abanay et al. | A calibration method of 2D LIDAR-Visual sensors embedded on an agricultural robot | |
US20210201522A1 (en) | System and method of selecting a complementary image from a plurality of images for 3d geometry extraction | |
CN112764651B (zh) | 一种浏览器端三维点云剖面绘制方法和绘制系统 | |
CN111521157B (zh) | 一种飞行器观察区域坐标计算方法及系统 | |
CN111429548B (zh) | 数字地图生成方法及系统 | |
CN113034660A (zh) | 一种基于pbr反射模型的激光雷达仿真方法 | |
CN115482273A (zh) | 一种ar坐标和地理坐标的转换方法 | |
CN114693820A (zh) | 对象提取方法、装置、电子设备及存储介质 | |
CN109493419B (zh) | 一种倾斜摄影数据获取数字表面模型的方法及装置 | |
EP1796048A2 (en) | Augmented virtual environments | |
Abdelhafiz et al. | 3D Image” as a result from the combination between the laser scanner point cloud and the digital photogrammetry | |
CN113449027A (zh) | 一种城市路口动态信息三维可视化展示方法及装置 | |
CN113888708A (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 |