Three.JS旋转投影,使y轴成为z轴

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Three.JS旋转投影,使y轴成为z轴相关的知识,希望对你有一定的参考价值。

传统上,在3D投影中,Y轴是表示“上下”的轴。我学会了用其他引擎来思考它,因为该轴是Z轴。我想知道的是,在Three.JS中是否有办法使Z轴成为“上/下”轴。如果是的话,会有什么后果吗?

这是我想要的图表:

答案

您可以更改相机而不是整个坐标系。例如:

var WIDTH = 1024;
var HEIGHT = 768;
var VIEW_ANGLE = 45;
var ASPECT = WIDTH / HEIGHT;
var NEAR = 0.1;
var FAR = 10000;
camera = new THREE.PerspectiveCamera(VIEW_ANGLE, ASPECT, NEAR, FAR);
camera.position.z = 300;
camera.up = new THREE.Vector3( 0, 0, 1 );
scene.add(camera);

这会改变相机的up矢量以使用Z-UP。


编辑:

为了说明一个例子,这里是你创建的jsfiddle稍微修改后在设置lookAt向量后调用uphttp://jsfiddle.net/NycWc/1/

另一答案

我有一个对象问题。这就是我修复它的方法。

object.rotation.z = 90 * Math.PI/180;
object.rotation.x = -90 * Math.PI/180;

这改变了它的方向,正如你所要求的那样。

另一答案

应始终使用右手规则设置xyz坐标系。创建自己的约定根本不是一个好的计划,会引起很多混乱。您可以随意旋转坐标系,但不要更改轴的方向。如果你真的想做你展示的东西,你可以制作一个x,y,-z坐标系。

以上是关于Three.JS旋转投影,使y轴成为z轴的主要内容,如果未能解决你的问题,请参考以下文章

three.js中的矩阵变换(模型视图投影变换)

three.js 中的矩阵变换及两种旋转表达方式

Three.js 飞机的 3D 旋转

Three.js - 围绕某个轴旋转球体

如何在three.js对象渲染中从中心向左更改轴(x,y,z)位置?

THREE.js如何实现在x,y,z轴上的拖拽