THREE.js关于X的奇怪旋转
THREE.js weird rotation about X
下面是jsFiddle中的完整代码:
http://jsfiddle.net/73v15kb6/1/
围绕Y和Z旋转是我所期望的,所有的转换都是一样的。当我试图绕X轴旋转时,看起来THREE.js正在做一些特别的事情,让它看起来"更酷"——但这不是我想要实现的。
阅读类似的主题,我确信这与我的rotateX函数有关:
camera.position.y = y * cos - z * sin;
camera.position.z = y * sin + z * cos;
camera.lookAt(scene.position);
当我启动三维世界时,我用以下值设置相机的坐标,只是为了保持所需的视图:
camera.position.x = -60;
camera.position.y = 30;
camera.position.z = 0;
有人知道我做错了什么吗?非常感谢!
我是THRE.js的新手(事实上,这是我第一次使用它),所以我可能无法正确解释它:(
THREE.js让它看起来"更酷"的部分是camera.lookAt方法。
camera.lookAt(sphere.position);
这是样品(已修改)http://jsfiddle.net/73v15kb6/3/
尝试为每个轴播放animate函数,并尝试启用lookAt选项。玩一段时间会给你一个概念。:)
function animate() {
requestAnimationFrame(animate);
rotateX(5); // Try with Y & Z; (also with toggling lookAt())
}
lookAt函数可能会使变换函数看起来很奇怪,因为即使相机按预期进行变换,渲染区域也会保持不变。
感谢森雅各布修理我的小提琴!
我找到了一个解决方案,所以为了让它按我的意愿工作——相机总是盯着中心点(0,0,0),单词的所有旋转都围绕着轴进行,我必须对每个旋转做以下操作:
对于rotZ和rotY
camera.up = new THREE.Vector3(0,1,0);
camera.lookAt(new THREE.Vector3(0,0,0));
对于rotX:
camera.up = new THREE.Vector3(1,0,0);
camera.lookAt(new THREE.Vector3(0,0,0));
注意X和Y之间的上方向向量的差异&Z.
相关文章:
- 旋转按钮[HTML][JS]
- 在JS中围绕旋转对象旋转对象
- HTML5、CSS3和/或JS中旋转CD上的音频播放器
- 使用tween.js围绕世界轴旋转对象
- JS/CSS旋转的DIVS在任何屏幕的中间相遇
- 三个js键盘旋转
- JS下拉菜单显示在图像旋转器上
- 三.js轨道控制.js可以改变反Y轴旋转吗?
- jquery 图像旋转器(仅在 JS 中传递图像)
- Don't限制OrbitControls.js中的旋转
- 恢复旋转三.js
- 如何旋转相机,使其面向/高于球体上的点(Three.js)
- 单击three.js中的链接旋转球体
- JS with SVG:围绕其中心旋转SVG元素
- 使用D3.js旋转外部SVG文件
- 无中心旋转的Matter.js机身
- Three.js如何使用四元数旋转相机
- Three.js TrackballControls.js在z中旋转;仅x轴
- 在HTML5画布中旋转JS对象时Y轴出现问题
- 如何围绕织物中的一个指定点旋转.js