2016-08-01 12 views
0

Mit three.js stieß ich auf ein Problem. Ich würde es schätzen, wenn mir jemand helfen würde. Mein Ziel ist folgendes;So verschmelzen Rechtecke, die gedreht wurden

1 Erster Schritt: Legen Sie zwei Rechtecke nebeneinander mit einem bestimmten Winkel fest.

2 Zweiter Schritt: Drehen Sie sie mit der gleichen Achse und dem gleichen Drehwinkel zusammen.

Bevor ich sie zusammenfasse, muss ich eines der Rechtecke drehen, um den ersten Schritt zu machen. Dann versuche ich sie zusammenzuführen, aber das gedrehte Rechteck wird nicht gerendert, das ist, es ist verschwunden. Ich vereinfachte das Problem, das heißt, Wenn Sie ein Rechteck vor dem Zusammenführen drehen, ist das Rechteck weg. Was soll ich tun?

Die Schnipsel meines Codes (Version vereinfacht; ich das Teil von rectangle2 weggelassen) ist:

1 var rectangle1Geometry=new THREE.PlaneGeometry(10,10); 
2 var rectangle1Material=new THREE.MeshPhongMaterial(); 
3 var rectangle1=new THREE.Mesh(rectangle1Geometry,rectangle1Material); 
4 rectangle1.position.set(0,0,-5); 
5 rectangle1.rotation.x=Math.PI./2; 
6 rectangle1.updateMatrix(); 
7 var singleGeometry=new THREE.Geometry(); 
8 singleGeometry.merge(rectangle1.geometry,rectangle1.matrix); 
9 var material=new THREE.MeshPhongMaterial(); 
10 var mesh=new THREE.Mesh(singleGeometry,material); 
11 scene.add(mesh); 
12 renderer.render(scene,camera); 

Wenn ich line5 ausschließen, ich das Bild von rectangle1 sehen können.

Antwort

0

Haben Sie Fehler in Ihrer Konsole?
Sie haben einen Tippfehler in Ihrem Code. Aber ich bin nicht sicher, ob das das Problem verursacht ...

rectangle1.rotation.x = Math.PI./2; 

rectangle1.rotation.x = Math.PI/2; 
0

sein sollte, denke ich, muss man beide Seiten der Ebene ziehen. Ändern Sie die folgenden beiden Zeilen

var rectangle1Material=new THREE.MeshPhongMaterial(); 
var material=new THREE.MeshPhongMaterial(); 

zu -

var rectangle1Material=new THREE.MeshPhongMaterial({side: THREE.DoubleSide}); 
var material=new THREE.MeshPhongMaterial({side: THREE.DoubleSide});