threejs实现点击获取当前坐标(x,y,z)

在aweb123.com上,博主分享了如何利用threejs库,在前端项目中实现用户点击屏幕时获取3D场景中的当前坐标(x,y,z)。这涉及到javascript与vue.js的结合应用,为3D交互提供了便利。" 128506294,8371128,Linux系统设备树驱动LED详解,"['linux', '驱动开发', '系统运维']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述


// 加载游戏地图
  async function loadGameMap() {
    const { scene: object } = await loadGLTF("/model/工厂2/scene.gltf");
    object.scale.set(2.2, 2.2, 2.2);
    object.rotateY(getAngle(90));
    object.position.set(-4, 0, 0);

    document.addEventListener("click", (e) => {
      modelOnClick(e, object);
    });

    scene.value?.add(object);
  }

// 点击模型,打印出坐标
  function modelOnClick(event: MouseEvent, object: THREE.Group) {
    const mouse = new THREE.Vector2(
      (event.clientX / element.value.offsetWidth) * 2 - 1,
      -(event.clientY / element.value.offsetHeight) * 2 + 1
    );
    const raycaster = new THREE.Raycaster();
    raycaster.setFromCamera(mouse, camera.value!);
    const intersects = raycaster.intersectObject(object, true);
    if (intersects.length <= 0) return void 0;
    const selected = intersects[0].object;

    console.log(intersects[0].point, "===");

    // if (selected instanceof THREE.Mesh) {
    //   selected.material = new THREE.MeshStandardMaterial({
    //     color: "red",
    //     metalness: 1,
    //     roughness: 0.7
    //   });
    // }
  }

博主开发了一个浏览器aweb123.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九段刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值