[英]Objects in with bad view using Three.js
I have problems with a simple code with three.js, where I'm trying to draw a room with three walls and a floor ... everything is perfect, according to the codes I used of the references of three.js page... but you may notice that the walls are not aligned... 我用three.js编写一个简单的代码时遇到了问题,在这里我试图绘制一个由三堵墙和一个地板组成的房间……根据我对Three.js页面的引用使用的代码,一切都非常完美。 ,但您可能会注意到墙壁未对齐...
why are not aligned?, if my code is right (I think). 为什么不对齐?,如果我的代码正确(我认为)。
The Code: 编码:
//scene-camera
var scene = new THREE.Scene ();
var camera = new THREE.PerspectiveCamera (90, window.innerWidth/window.innerHeight, 1, 1000);
camera.position.z = 13;
camera.updateMatrixWorld (true);
scene.add (camera);
//renderer
var renderer = new THREE.WebGLRenderer ();
renderer.setSize (window.innerWidth, window.innerHeight);
document.body.appendChild (renderer.domElement);
//geometry
var geometryPlane = new THREE.PlaneGeometry (10, 5);
var geometryPlane2 = new THREE.PlaneGeometry (10, 10);
//materials
var materialBlue = new THREE.MeshBasicMaterial ({color: 0x3C64C8, side: THREE.DoubleSide});
var materialGreen = new THREE.MeshBasicMaterial ({color: 0x3CC864, side: THREE.DoubleSide});
var materialRed = new THREE.MeshBasicMaterial ({color: 0xFF33C3C, side: THREE.DoubleSide});
var materialYellow = new THREE.MeshBasicMaterial ({color: 0xFFD700, side: THREE.DoubleSide});
//objets-plane
var plane1 = new THREE.Mesh (geometryPlane, materialBlue);
var plane2 = new THREE.Mesh (geometryPlane, materialGreen);
var plane3 = new THREE.Mesh (geometryPlane, materialRed);
var plane4 = new THREE.Mesh (geometryPlane2, materialYellow);
//vectors
var vecY = new THREE.Vector3(0, 1, 0);
var vecX = new THREE.Vector3(1, 0, 0);
var vec0 = new THREE.Vector3(0, 0, 0);
//add scene-camera position of the objects
scene.add (plane1);
scene.add (plane2);
scene.add (plane3);
scene.add (plane4);
var render = function (){
//translate
plane1.translateOnAxis (vecX, 5);
plane3.translateOnAxis (vecX, -5);
plane4.translateOnAxis (vecY, -2.5);
//rotate
plane1.rotation.y = THREE.Math.degToRad(95);
plane3.rotation.y = THREE.Math.degToRad(95);
plane4.rotation.x = THREE.Math.degToRad(95);
renderer.render (scene, camera);
}
render ();
Thanks for any help! 谢谢你的帮助!
Try 尝试
plane1.rotation.y = THREE.Math.degToRad(90);
plane3.rotation.y = THREE.Math.degToRad(90);
plane4.rotation.x = THREE.Math.degToRad(90);
instead of 代替
plane1.rotation.y = THREE.Math.degToRad(95);
plane3.rotation.y = THREE.Math.degToRad(95);
plane4.rotation.x = THREE.Math.degToRad(95);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.