[发明专利]一种在三维球面实现拖动的方法在审
申请号: | 201710565973.3 | 申请日: | 2017-07-12 |
公开(公告)号: | CN107492150A | 公开(公告)日: | 2017-12-19 |
发明(设计)人: | 陈杭锋;俞蔚 | 申请(专利权)人: | 浙江科澜信息技术有限公司 |
主分类号: | G06T19/20 | 分类号: | G06T19/20 |
代理公司: | 浙江杭知桥律师事务所33256 | 代理人: | 王梨华,陈丽霞 |
地址: | 310051 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 三维 球面 实现 拖动 方法 | ||
技术领域
本发明涉及三维图形引擎漫游领域,尤其涉及在三维球面中实现拖动的方法,其通过在三维场景中对鼠标点击位置,和鼠标的移动位置计算出相机矩阵,实现在三维球面中精准拖动模型的效果。
背景技术
传统的三维球面场景对场景的拖动时,需要计算使用鼠标在窗口二维坐标系移动的位置去拖动场景,但由于二三维坐标的不一致,导致三维场景的拖动不精准,鼠标点中物体在拖动过后,鼠标所在位置和点中的点发生了偏移,因此,当需要精准拖动时,这种处理方式则无能为力。
发明内容
本发明的目的是针对现有技术的不足,提出了利用鼠标按下当前点的二维坐标和主相机的矩阵信息与全场景的模型做一次相交运算,从而精准的计算出三维球面场景中当前鼠标锁定的模型点的三维坐标LockPoint(点A)。通过运算使鼠标左键按下后在场景中的任意移动都能锁定三维坐标LockPoint在鼠标位置。
为实现这一目的,本发明提出了一种在三维球面实现拖动的方法,其包括:
步骤1、获取三维场景下的三维球面模型以及相机矩阵;
步骤2、锁定基准点,所述基准点为第三三维坐标G与第一三维坐标A所形成的线段与整个场景相交,取出相交的最近点第四三维坐标D;
步骤3、移动所述鼠标,获取所述鼠标当前移动到的点的第二二维坐标B1,基于第二二维坐标B1和漫游相机矩阵计算出第二三维坐标B和第一向量CB;
步骤4、基于所述第四三维坐标D,第一向量CB和线段OE计算第五三维坐标E,所述第五三维坐标E为转动场景后所述基准点的位置;
步骤5、基于所述第五三维坐标E和第四三维坐标D,计算旋转角度和旋转轴;
步骤6、基于计算的所述旋转角度和旋转轴,转动相机,从而实现三维球面的精准拖动。
其中,所述基准点为鼠标当前按下的点在三维球面上的投影。
其中,所述步骤2包括使用相机矩阵将所述基准点的第一二维坐标转换为三维场景中的第一三维坐标A和第三三维坐标G。
其中,所述步骤1与步骤2之间还包括:计算鼠标当前按下点的在所述三维场景中的三维坐标。
其中,所述二维坐标位于相对漫游相机的远截面上,三维坐标位于相对三维场景坐标。
其中,所述步骤5具体包括:
设定三维球面的球心为原点
假定漫游相机不动,将所述鼠标点击的点的拖动视为第四三维坐标D、第五三维坐标E与所述原点构成的第一平面内,所述第四三维坐标D沿着球面转动角度α;
此时,假定球不动,实际的移动可视为所述漫游相机在所述第一平面内由原始位置反向移动角度α。
其中,,基于用户点击鼠标时按下的点A1与所述相机矩阵计算出相机远截面上的点的第一三维坐标A和相机近截面上的点的第三三维坐标G。
本发明可以实现三维场景下的物体基于球面模型的的精准拖动。
附图说明
图1为与本发明实施例一致的将三维场景中的物体从一个点拖动到另一个点的平面示意图;
图2为与图1的拖动一致的在三维场景中的拖动示意图;
图3为与图2拖动一致的在三维球面模型下的拖动示意图;
图4为与图3拖动一致的三维球面在二维平面中的映射图。
具体实施例
基于以上内容,本发明的主要的核心在于:第一,要计算鼠标按下点的二维坐标和三维坐标的转换,第二,根据鼠标移动到的位置计算出相机变化方位。
一、二维坐标和三维坐标转换
1、精准转换
将鼠标当前按下的点的二维坐标转换为三维场景中的坐标,视这个三维点为精准抓取点LockPoint,后面的计算都是以这个为基准进行计算的。
2、方向转换
将鼠标按下移动后的点的二维坐标使用相机矩阵转化为此时三维场景的向量MoveVector(向量CB),此时场景是静止的,相机的矩阵依然使用鼠标按下时候的相机矩阵。
通过鼠标按下点的初始三维坐标LockPoint和鼠标移动的向量MoveVector计算实现精准拖动
此拖动算法主要有两个重点。一是拖动后模型还是在原来鼠标远来的位置,就是鼠标点下后,不管鼠标怎么移动,LockPoint一直在鼠标的位置,即简单说就是鼠标按下抓取点随着鼠标移动而移动;二是基于三维球面的拖动。
如图1所示,为与本发明实施例一致的将三维场景中的物体从一个点拖动到另一个点的平面示意图。
图中显示,用户将该物体从二维屏幕的点A1拖动到二维屏幕的点B1。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江科澜信息技术有限公司,未经浙江科澜信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710565973.3/2.html,转载请声明来源钻瓜专利网。