我使用了一种快速而肮脏的方法来编写这种效果 -

在 OrbitControls.js 中,将此函数添加到主声明中(或任何地方) -

this.inertiaFunction = function()

{

scope.rotateLeft( ( 2 * Math.PI * rotateDelta.x / PIXELS_PER_ROUND * scope.userRotateSpeed )/dividingFactor);

scope.rotateUp( ( 2 * Math.PI * rotateDelta.y / PIXELS_PER_ROUND * scope.userRotateSpeed )/dividingFactor);

dividingFactor+=0.5;

}

在 onMouseDown(event) 函数中,在第一行添加 -

dividingFactor = 1;

(这样每次点击都会重置因子)

在 onMouseUp(event) 函数中,在开头添加了这些行 -

dragging2=false;

timer = setTimeout(function(){dragging=false;}, 500);

dragging 和 dragging2 是我们在requestAnimFrame函数中使用的两个标志,用于确定鼠标是否已被抬起且500毫秒尚未通过 .

在主animate()或requestAnimationFrame()函数中添加它 -

if(dragging && !dragging2){ controls.inertiaFunction(); }

这将检查是否(鼠标已被抬起)和(500毫秒尚未通过) -

调用controls对象的inertiaFunction()(这是 THREE.OrbitControls 的一个实例)

对于用户在提升鼠标的500ms内单击的情况,我们使用 timer 对象取消setTimeOut .

在你的onMouseDown函数中,添加这个 -

if(dragging)

{

clearTimeout(timer);

}

不要忘记将 dragging , timer 和 dragging2 以及 dividingFactor 声明为全局变量 . 使用 dividingFactor 和 setTimeout() 中的500ms来改变行进距离和惯性运动的持续时间 .

Java惯性数据库_来自ThreeJS的OrbitControl中的惯性相关推荐

  1. java derby数据库_使用Apache Derby进行Java数据库开发,第1部分

    java derby数据库 JDBC简介 以前,本系列文章通过使用ij工具连接Apache Derby数据库并与之交互来演示了许多数据库概念. 尽管当时可能还不太明显,但是您使用的Java应用程序使用 ...

  2. java derby数据库_使用Apache Derby进行Java数据库开发,第3部分

    该"使用Apache Derby进行Java数据库开发"系列的上一篇文章向您展示了如何使用Java Statement对象在Apache Derby数据库上执行SQL SELECT ...

  3. java序列化深克隆_如何在内存序列化中使用Java深克隆对象

    java序列化深克隆 在我以前的文章中,我解释了深度克隆和浅层克隆之间的区别 , 以及复制构造函数和防御性复制方法比默认的Java克隆如何更好. 使用复制构造函数和防御性复制方法进行的Java对象克隆 ...

  4. azure云数据库_在Azure Cosmos DB中使用PowerShell创建和删除数据库

    azure云数据库 Our testing or development may call for dynamic creation on the database level for Azure C ...

  5. arcgis打开mdb数据库_操作方法:在 ArcGIS 中连接至 Microsoft Access 2007 / 2010 (ACCDB) 文件...

    操作方法:在 ArcGIS 中连接至 Microsoft Access 2007 / 2010 (ACCDB) 文件 摘要 Microsoft Office 2007 引入了一种新的 Microsof ...

  6. java 模型 数据库_数据库表与java域模型之间的mapping和自动生成(基于mybatis)

    最近有幸读到<企业架构模式>这本书,需要写作于2003年,已经是十年前,但仔细读过,有些东西现在只知道是这样用,但并不知道为什么要这样做.在看过此书之后,很多东西都能够有一条线进行贯穿,在 ...

  7. java 数据结构 数据库_数据库索引背后的数据结构

    在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法.这种数据结构,就是索引. B-Tree B-Tree是一种 ...

  8. java 删除数据库_【Java】执行数据库的删除操作

    import java.sql.*; //执行数据库的删除操作 public class DeleteData { //定义MySQL的数据库驱动程序 public static final Stri ...

  9. 汽车租赁系统java基于数据库_基于数据库和JAVA的网上汽车租赁管理系统的设计(MySQL)...

    基于数据库和JAVA的网上汽车租赁管理系统的设计(MySQL)(论文11000字,程序代码,MySQL数据库) 摘要:本文用JAVA编程语言为主体,用JDBC连接MySQL数据库来设计和实现这个系统. ...

  10. 影院售票系统java和数据库_影院售票管理系统的设计与实现(SSH,SQLServer)(含录像)...

    影院售票管理系统的设计与实现(SSH,SQLServer)(含录像)(毕业论文15900字,程序代码,SQLServer数据库) 本毕业设计的内容,阐述了实现整个电影票预订系统功能的系统.从实现电影票 ...

最新文章

  1. qfdw.xyz sq.php,GitHub - STORMSQ/sqphp: 練習用框架,使用PHP搭建
  2. MVC-Razor(3)
  3. Eclipse引入spring约束详细教程
  4. 日美“利刃”联合军演
  5. python plt.plot bar 设置绘图尺寸大小
  6. C# Windows 服务
  7. Linux内核中的延时函数
  8. 《The Django Book》笔记(未完结)
  9. ENVI监督分类及精度评价
  10. shell运行python脚本报错没有包_脚本安装Discuz论坛(shell + Python 实现自动化安装)...
  11. android如何获取网络的状态码,Android RxJava+Retrofit网络异常、状态码统一处理
  12. 【我的产品观】开发wangEditor一年总结
  13. 全世界国家的数据库sql
  14. 华为4G无线路由器测试锁频软件,华为4g无线路由器 新款E5375路由器测试
  15. 【Linux】Linux 基础开发工具(yum、vim、gcc/g++、gdb、make/makefile、git)
  16. 浅谈Arrays.asList()方法
  17. C#网络应用编程——复习总结
  18. Java实现蓝桥杯调和级数
  19. 【物联网】物联网安全---编辑中
  20. 问题 D: 扑克牌排序(结构体)

热门文章

  1. java 字符串排列组合_字符串排列组合问题
  2. 融合定位技术(FLP)介绍
  3. apollo 自动驾驶中的GNSS/融合定位技术
  4. android开发_ViewGroup(组视图)-- 五大布局
  5. uni-app实战之社区交友APP(2)全局样式引入和底部导航栏开发
  6. WORD-如何解除WORD文档的锁定
  7. webstorm,idea 右键菜单管理
  8. python爬取ajax_Python爬虫如-何爬取ajax网页之爬取雪球网文章
  9. 袁国宝:罗永浩直播之道
  10. 中国象棋马走日(要求打印每一种走法) — 递归