使用 THREE.JS 滚动球
Rolling a Ball Using THREE.JS
我一直在使用THREE.JS在WebGL中开发这个小台球游戏。
现在我有一个问题,从一个位置滚动球,比如Vector3(0, 0, 0)
到另一个位置Vector3(10, 50, 200)
.运动不是问题,但是我就是无法计算出旋转。这是我的做法,或者,尝试:
首先我得到距离:
var movement = new THREE.Vector3();
movement.subVectors(to, from);
var distance = movement.length();
接下来我计算角度
var angle = (distance / (radius * 2 * Math.PI));
在那之后,事情变得有点混乱,我不知道使用什么方法来旋转实际对象 - 我尝试了四元数:
var quaternion = new THREE.Quaternion().setFromAxisAngle(movement.normalize(), angle);
mesh.rotation.setEulerFromQuaternion(quaternion);
有谁知道如何实现这种轮换?
感谢您的任何帮助!
mesh.rotation.set(along_x, along_y, along_z);
mesh.rotation.z += 0.1;
您可以在网格上使用applyTransformation
,然后您应该让 lookAt 矢量指向to
矢量,然后围绕 x 轴应用简单的动画旋转(因为 lookAt 矢量 = 对象的 z 轴(。
希望这有帮助。
相关文章:
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- Myo和Node.js:从四元数滚动/俯仰/偏航
- 为什么 JS 不在滚动时调用函数
- 在向下滚动JS/HTML/CSS wordpress网站时替换徽标图像
- 使用JS滑动或滚动图像
- fullpage.js和物化.js;使用实体侧导航禁用鼠标滚动
- css/js:通过滚动固定位置
- Skrollr js没有在手机中向下滚动
- 如何在Angular JS中滚动显示元素
- fullpage.js在滚动时更改滚动方向
- JS/CSS:如何在向下滚动超过1200像素(高度)后更改z索引值
- Javascript-Nightmare.JS无限滚动操作
- Sammy.js缓存和滚动位置时,返回历史
- 如何使用鼠标滚动控制fullPage.js垂直滑块
- 平滑滚动js不滚动
- 自动滚动JS幻灯片不起作用
- JS加载顺序 - 滚动JS禁用,回调解决方案,或者更简单
- 如何使用航点无限滚动.js
- 触摸板上的双指滚动js
- 带骨干的无限滚动js