The invention provides a method, to achieve drag on the three-dimensional sphere includes: acquiring 3D scene model and the three-dimensional spherical camera matrix locking reference point, the reference point for the line formed by the third three-dimensional coordinates of the 3D coordinates of A G with the first communion with the whole scene, take out the 3D coordinates of D nearest point of intersection of the fourth mobile; the mouse, second B1 to obtain the two-dimensional coordinates of the current mouse moves to the point, second two-dimensional coordinates B1 and roaming camera matrix is calculated based on the second dimensional coordinate vector B and the first CB; the fourth dimensional coordinate based on D, CB and OE segment of the first vector calculation of fifth three-dimensional coordinates of the 3D coordinates of E, fifth E is the scene after the rotation reference position; the fifth and fourth three-dimensional coordinates of the 3D coordinates of E based on D, calculate the rotation angle and the rotation axis; the rotation angle based on calculation Degree and axis of rotation, turn the camera. The accurate drag of a three-dimensional object based on a spherical model can be realized through the invention.
【技术实现步骤摘要】
一种在三维球面实现拖动的方法
本专利技术涉及三维图形引擎漫游领域,尤其涉及在三维球面中实现拖动的方法,其通过在三维场景中对鼠标点击位置,和鼠标的移动位置计算出相机矩阵,实现在三维球面中精准拖动模型的效果。
技术介绍
传统的三维球面场景对场景的拖动时,需要计算使用鼠标在窗口二维坐标系移动的位置去拖动场景,但由于二三维坐标的不一致,导致三维场景的拖动不精准,鼠标点中物体在拖动过后,鼠标所在位置和点中的点发生了偏移,因此,当需要精准拖动时,这种处理方式则无能为力。
技术实现思路
本专利技术的目的是针对现有技术的不足,提出了利用鼠标按下当前点的二维坐标和主相机的矩阵信息与全场景的模型做一次相交运算,从而精准的计算出三维球面场景中当前鼠标锁定的模型点的三维坐标LockPoint(点A)。通过运算使鼠标左键按下后在场景中的任意移动都能锁定三维坐标LockPoint在鼠标位置。为实现这一目的,本专利技术提出了一种在三维球面实现拖动的方法,其包括:步骤1、获取三维场景下的三维球面模型以及相机矩阵;步骤2、锁定基准点,所述基准点为第三三维坐标G与第一三维坐标A所形成的线段与整个场景相交,取出相交的最近点第四三维坐标D;步骤3、移动所述鼠标,获取所述鼠标当前移动到的点的第二二维坐标B1,基于第二二维坐标B1和漫游相机矩阵计算出第二三维坐标B和第一向量CB;步骤4、基于所述第四三维坐标D,第一向量CB和线段OE计算第五三维坐标E,所述第五三维坐标E为转动场景后所述基准点的位置;步骤5、基于所述第五三维坐标E和第四三维坐标D,计算旋转角度和旋转轴;步骤6、基于计算的所述旋转角度和旋转 ...
【技术保护点】
一种在三维球面实现拖动的方法,其包括:步骤1、获取三维场景下的三维球面模型以及相机矩阵;步骤2、锁定基准点,所述基准点为第三三维坐标G与第一三维坐标A所形成的线段与整个场景相交,取出相交的最近点第四三维坐标D;步骤3、移动所述鼠标,获取所述鼠标当前移动到的点的第二二维坐标B1,基于第二二维坐标B1和漫游相机矩阵计算出第二三维坐标B和第一向量CB;步骤4、基于所述第四三维坐标D,第一向量CB和线段OE计算第五三维坐标E,所述第五三维坐标E为转动场景后所述基准点的位置;步骤5、基于所述第五三维坐标E和第四三维坐标D,计算旋转角度和旋转轴;步骤6、基于计算的所述旋转角度和旋转轴,转动相机,从而实现三维球面的精准拖动。
【技术特征摘要】
1.一种在三维球面实现拖动的方法,其包括:步骤1、获取三维场景下的三维球面模型以及相机矩阵;步骤2、锁定基准点,所述基准点为第三三维坐标G与第一三维坐标A所形成的线段与整个场景相交,取出相交的最近点第四三维坐标D;步骤3、移动所述鼠标,获取所述鼠标当前移动到的点的第二二维坐标B1,基于第二二维坐标B1和漫游相机矩阵计算出第二三维坐标B和第一向量CB;步骤4、基于所述第四三维坐标D,第一向量CB和线段OE计算第五三维坐标E,所述第五三维坐标E为转动场景后所述基准点的位置;步骤5、基于所述第五三维坐标E和第四三维坐标D,计算旋转角度和旋转轴;步骤6、基于计算的所述旋转角度和旋转轴,转动相机,从而实现三维球面的精准拖动。2.如权利要求1所述在三维球面实现拖动的方法,其中,所述步骤2包括使用相机矩阵将所述基准点的第一二维坐标转换为三维场景中的第一三维坐标A和...
【专利技术属性】
技术研发人员:陈杭锋,俞蔚,
申请(专利权)人:浙江科澜信息技术有限公司,
类型:发明
国别省市:浙江,33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。