Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js 绕轴旋转立方体_Three.js - Fatal编程技术网

Three.js 绕轴旋转立方体

Three.js 绕轴旋转立方体,three.js,Three.js,在我的计划中,我做了如下工作: var object = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial( 0xff0000 ) ); object.rotation.x = Math.PI / 2; var box = new THREE.BoxHelper( object, 0xffff00 ); scene.add(box); 在这里,我首先尝试创建一个线框,然后将其绕x轴旋转90度(第2行)。但我看不到盒子的方向有任何变化 正确

在我的计划中,我做了如下工作:

var object = new THREE.Mesh(geometry, new THREE.MeshBasicMaterial( 0xff0000 ) );
object.rotation.x = Math.PI / 2;
var box = new THREE.BoxHelper( object, 0xffff00 );
scene.add(box);
在这里,我首先尝试创建一个线框,然后将其绕x轴旋转90度(第2行)。但我看不到盒子的方向有任何变化


正确的方法是什么?

只需将立方体的旋转设置为90度(此处为45度),就可以得到相同的立方体:

var scene=new THREE.scene();
var摄像机=新的三透视摄像机(60,window.innerWidth/window.innerHeight,11000);
摄像机。位置。设置(2,5,10);
var renderer=new THREE.WebGLRenderer({
反别名:对
});
renderer.setSize(window.innerWidth、window.innerHeight);
document.body.appendChild(renderer.doElement);
var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);
添加(新的三个.GridHelper(10,10));
var cube=新的THREE.Mesh(新的THREE.BoxGeometry(2,2,2),新的THREE.MeshBasicMaterial({
颜色:“浅绿色”,
线框:正确
}));
立方体位置集(0,1,0);
cube.rotation.x=Math.PI*0.25;
场景.添加(立方体);
var box=新的三个.BoxHelper(多维数据集,0xff9900);
场景。添加(框);
render();
函数render(){
请求动画帧(渲染);
渲染器。渲染(场景、摄影机);
}
正文{
溢出:隐藏;
保证金:0;
}


对象旋转后,尝试调用
object.updateMatrix()命令仍然没有更改。框本身是一个轴对齐的边界框。它不会像你期望的那样旋转。注意,刚才,如果你将一个立方体旋转90度,从视觉上看,你将得到同一个立方体。