gpt4 book ai didi

Three.js 将对象设置在另一个对象的本地坐标系中

转载 作者:行者123 更新时间:2023-12-02 03:23:35 35 4
gpt4 key购买 nike

我想知道是否可以将 3d 对象放置在 Three.js 中另一个对象的局部坐标系内。因此放置的对象应该相对于“原点”对象。

例如:我使用设备相机(使用 expo AR)扫描图像,并想要放置与图像有固定距离的物体。我认为这些位置是相对于相机的,不是吗?

             this.scene.add(chair)
chair.position.set( 1, 0, -5);

this.scene.add(chair2)
chair2.position.set( 1, 0 , -3);

最佳答案

我认为您正在寻找的是 THREE.Group目的。它允许您将元素嵌套在组中,因此如果您更改组的坐标,其子元素也会随之移动。例如:

// Create parent, set its pos to 0, 5, 0
var parent = new THREE.Group();
scene.add(parent);
parent.position.set(0, 5, 0);

// create child, and add to parent
var chair1 = new THREE.Mesh(geom, mat);
parent.add(chair1);
chair1.position.set(1, 0, 0);

// create child, and add to parent
var chair2 = new THREE.Mesh(geom, mat);
parent.add(chair2);
chair2.position.set(0, 1, 0);
  • chair1 在全局坐标中位于 [1, 5, 0],但在局部空间中位于 [1, 0, 0]
  • chair2 在全局坐标中位于 [0, 6, 0],但在局部空间中位于 [0, 1, 0]

关于Three.js 将对象设置在另一个对象的本地坐标系中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54077368/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com