javascript – Three.js如何使用四元数来旋转相机
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Three.js如何使用四元数来旋转相机,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1384字,纯文字阅读大概需要2分钟。
内容图文
![javascript – Three.js如何使用四元数来旋转相机](/upload/InfoBanner/zyjiaocheng/702/ab0175138f1441b9983adbb13343d3f7.jpg)
在Three.js中,我想使用THREE.quaternion使相机对象旋转到所选对象.
我确实在网上搜索,但没有找到关于如何使用这个四元数类的示例/演示或文档.
我试试以下代码:
camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.y = 10;
camera.position.z = 0;
camera.position.x = radious;
camera.useQuaternion = true;
// I did use the TrackballTrackballControls. Maybe it causes the problem so I put it here
controls = new THREE.TrackballControls( camera, document.getElementById(_canvasElement) );
// function to make the camera rotate to the object
function focusOn3DObject(obj){
obj.useQuaternion = true;
obj.quaternion = new THREE.Quaternion(obj.position.x, obj.position.y, obj.position.z, 1);
var newQuaternion = new THREE.Quaternion();
THREE.Quaternion.slerp(camera.quaternion, obj.quaternion, newQuaternion, 0.07);
camera.quaternion = newQuaternion;
}
但它不起作用.我错过了什么?
请帮忙.提前致谢.
解决方法:
Slerp非常简单.它需要4个参数:
> targetRotation实际的相机旋转
> destinationRotation对象旋转
> destinationRotation新的四元数将是新的相机旋转
> percentOfRotation这个参数是操场,我现在在这里使用0.07,可以是0(0%)和1(100%)之间的值
这是我的轮换方法:
var qm = new THREE.Quaternion();
THREE.Quaternion.slerp(camera.quaternion, destRotation, qm, 0.07);
camera.quaternion = qm;
camera.quaternion.normalize();
希望这会对你有所帮助.并且不要打扰我也会在完美的相机上工作几周.
内容总结
以上是互联网集市为您收集整理的javascript – Three.js如何使用四元数来旋转相机全部内容,希望文章能够帮你解决javascript – Three.js如何使用四元数来旋转相机所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。