javascript - THREE.js - 相对于具有旋转/缩放父项的屏幕移动对象

标签 javascript three.js webgl

在 THREE.js 中,我试图根据鼠标位置在屏幕上四处移动对象。看了一些examples ,这似乎很困难。这是我从其中一个示例中借用的一些代码,这些代码主要用于满足我的需要:

function mouseMove(e){
    mouse2D.x = ( (e.pageX-canvas.offsetParent.offsetLeft) / canvas.clientWidth ) * 2 - 1;
    mouse2D.y = - ( (e.pageY-canvas.offsetParent.offsetTop) / canvas.clientHeight ) * 2 + 1;

    if (selected) {
      var ray = projector.pickingRay(mouse2D, PGL._camera).ray;
      var targetPos = ray.direction.clone().addSelf(ray.origin);
      targetPos.subSelf(_offset);

      obj.position.x = initPos.x + targetPos.x;
      obj.position.y = initPos.y + targetPos.y;
    }
  }

这适用于在场景中移动直接子级。问题是试图移动具有旋转和/或缩放的父项的对象。你会如何处理?可以将对象 matrixRotationWorld 应用于运动吗? 我仍在努力解决这个问题。任何帮助表示赞赏。

最佳答案

关于javascript - THREE.js - 相对于具有旋转/缩放父项的屏幕移动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14351686/

相关文章:

3d - THREE.JS:在网格内部查看几何图形

javascript - 三个js编辑器中的对象更亮

javascript - three.js 使用A-frame 会影响three.js 吗?

dart - 使用Three.dart创建双面平面。运行时浏览器上没有任何显示

javascript - 已记录 WebGL 'texture not renderable' 警告,但所有行为均正确

javascript - 用于高级 Web GUI 的 Pixi.js 和 ThreeJS

javascript - 向 Node Webshot 生成的 PDF 添加标题

javascript - 如何更改所选行列数据表的字体颜色

javascript - 如何使用下一个和上一个按钮在表格之间切换?

javascript - 带有变量的jquery类前缀名称选择