javascript 在将网格添加到three.js中的场景之前,如何设置网格的位置

mccptt67  于 2023-02-15  发布在  Java
关注(0)|答案(4)|浏览(145)

在three.js中,我想在场景中的某个位置添加一个网格
我试过了

// mesh is an instance of THREE.Mesh
// scene is an instance of THREE.Scene
scene.add(mesh)
scene.updateMatrixWorld(true)
mesh.matrixWorld.setPosition(new THREE.Vector3(100, 100, 100))
scene.updateMatrix()

但它没有影响任何东西。
我该怎么办?

6tr1vspr

6tr1vspr1#

我建议您查看此处的文档:http://threejs.org/docs/#Reference/Objects/Mesh正如您在文档页面顶部所看到的,Mesh继承自“Object3D"。这意味着您可以使用Object3D提供的所有方法或属性。因此,单击文档页上的“Object3D”链接并检查属性列表。您将找到属性“.position"。单击“.position”查看它是什么数据类型。Paha..its *向量3 *。
所以试着做以下几点:

// scene is an instance of THREE.Scene
scene.add(mesh);
mesh.position.set(100, 100, 100);
jtw3ybtb

jtw3ybtb2#

我之前在github上看到的。(three.jsr71)

mesh.position.set(100, 100, 100);

也可以针对个人

mesh.position.setX(200);  
mesh.position.setZ(200);

参考:www.example.comhttps://threejs.org/docs/#api/math/Vector3

    • 详细说明如下:**

因为网格位置是"Vector3"。Vector3()有setX()、setY()和setZ()方法。我们可以这样使用它。

mesh.position = new THREE.Vector3() ; //see position is Vector3()
vector1 = new THREE.Vector3();   

mesh.position.setX(100);  //or  this
vector1.setX(100)         // because all of them is Vector3()
camera1.position.setZ(100); // or this
light1.position.setY(100)   // applicable to any object.position
jhdbpxl9

jhdbpxl93#

我更喜欢使用**Vector3**来设置位置。

let group = new THREE.Group();

   // position of box
   let vector = new THREE.Vector3(10, 10, 10);
   
     // add wooden Box
   let woodenBox = new THREE.Mesh(boxGeometry, woodMaterial);

    //update postion
    woodenBox.position.copy(vector);

  // add to scene
   group.add(woodenBox)
   this.scene.add(group);
nc1teljy

nc1teljy4#

如果有人在寻找从Vector3更新位置的方法

const V3 = new THREE.Vector3(0,0,0)            // Create variable in zero position
const box = new THREE.Mesh(geometry, material) // Create an object
Object.assign(box.position, V3)                // Put the object in zero position

const V3 = new THREE.Vector3(0,0,0)            // Create variable in zero position
const box = new THREE.Mesh(geometry, material) // Create an object
box.position.copy(V3)

相关问题