ThreeJS 运动 - 在固定时间段内绕圈移动
ThreeJS motion - move in a circle over fixed time period
我试图让一个对象在固定的时间段内沿着循环路径移动。
它的应用是"平稳运动"时钟。
因此,与其在每次更新.getSeconds()
时都将位置移动到固定坐标,不如使用( .getSeconds() + ( .getMilliseconds()/1000 )
的组合,以便始终准确地表示秒针的运动。
过去,为了进行圆周运动,我使用了以下一对函数:
var OrbitCalculationX = function(velocityPartial, orbitalRadius) {
return (Math.sin(Date.now() / 16000 * velocityPartial) * orbitalRadius);
};
var OrbitCalculationZ = function(velocityPartial, orbitalRadius) {
return (Math.cos(Date.now() / 16000 * velocityPartial) * orbitalRadius);
};`
该计算中的16000
控制了轨道时间。但是,这并不准确。有没有办法控制具有准确时间约束的x-axis sin vs z-axis cos
方程集?
如果没有,有没有办法在 THREEjs 中设置要在确切时间段内完成的动画路径?
我希望我在这里正确理解了你......
花一分钟,有 60 秒和 60,000 毫秒。因此,我们想要的第一步是拥有该范围内的数字。
var millisInMinute = Date.now() % 60000;
接下来我们要的是规范化值,使其从 0 变为 1:
var millisInMinuteNormalized = millisInMinute / 60000;
现在,要使用 sin 和 cos 进行整个圆周运动,我们知道我们的变量将在 0 和 1 之间,我们需要将其乘以 2*PI 在此处查看
图其余的半径就像你做的一样,导致
var orbitCalculation = function(radius) {
return {x: (Math.sin((Date.now()%60000)/60000 * Math.PI * 2) * radius),
z: (Math.cos((Date.now()%60000)/60000 * Math.PI * 2) * radius)};
}
实际秒数现在显示正确,您可以将其与系统时间进行比较。这是一个有效的JSFiddle
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- JQuery移动动态分区页面
- XMLHttpRequest在移动设备上的chrome上不起作用
- 如何使bxslider仅在移动视图中处于活动状态
- css停止图像在滚动中移动
- jquery移动对齐按钮取决于内容大小
- 背景图像顶部的滚动图像不移动
- 如何在react js中移动第二个组件
- DataTables在表之间移动行
- ThreeJS 运动 - 在固定时间段内绕圈移动