Three.js 对创建的物体进行位置旋转缩放修改。

15 篇文章 0 订阅
6 篇文章 0 订阅

1.在场景里面添加一个物体作为示例

 // 创建一个物体(形状)
    const geometry = new THREE.BoxGeometry(5, 5, 5);
    //创建材质(外观)
    const material2 = new THREE.MeshLambertMaterial({
      color: 0xfff, //设置材质颜色
      side: THREE.DoubleSide, //设置两面可见
      transparent: true, //开启透明度
      opacity: 0.5, //设置透明度
    });
    // 创建一个网格模型对象
    const mesh = new THREE.Mesh(geometry, material2);
    this.scene.add(mesh);

2. 修改物体的位置

要修改物体的位置,直接访问其 position 属性,并设置其 xyz 值。

mesh.position.x = 2; // 设置 X 轴位置为 2
mesh.position.y = 1; // 设置 Y 轴位置为 1
mesh.position.z = -5; // 设置 Z 轴位置为 -5

set() 方法

  • 作用set() 方法用于设置对象的属性,可以将每个属性(例如位置的 x、y、z 坐标)分别指定为参数。
  • mesh.position.set(0, 2.5, 0); 

    set() 方法直接设置对象的属性值,如果调用时只提供部分参数,未指定的属性将保持不变(不会被清除为默认值)。

copy() 方法

  • 作用copy() 方法用于将另一个对象的属性复制到当前对象中,通常用于复制向量、颜色等对象。
  • 注意copy() 方法将完整地复制另一个对象的所有属性,覆盖当前对象的所有对应属性。如果参数对象有额外的属性,它们不会被考虑或复制。
let cc = new THREE.Vector3(0, 0.2, 0);
mesh.position.copy(cc);

3. 修改物体的旋转

mesh.rotation.x = Math.PI / 4; // 绕 X 轴旋转 45 度(π/4 弧度)
mesh.rotation.y = Math.PI / 3; // 绕 Y 轴旋转 60 度(π/3 弧度)
mesh.rotation.z = Math.PI / 6; // 绕 Z 轴旋转 30 度(π/6 弧度)


mesh.rotation.set(2, 1, 0.5); //旋转

假设有两个立方体 cube1cube2,你可以这样使用 copy 方法:

cube2.rotation.copy(cube1.rotation);

4. 修改物体的缩放

物体的缩放通过其 scale 属性进行设置。

cube.scale.set(2, 1, 0.5); // 在 X 轴上放大两倍,Y 轴保持原大小,Z 轴缩小为原来的一半

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值