微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单击鼠标更改几何位置

如何解决单击鼠标更改几何位置

我是three.js 的新手,我想把模型放在我用鼠标点击的地方。我面临的问题是我想将 2D x,y 画布点转换为 3D x,y 世界点(使用透视相机)。这似乎是重复的,但这些答案现在已被弃用,或者它们不完全是我所需要的。

这是 JS 代码,它可以完成我想要的操作,例如在鼠标单击时放置几何图形,但它也会改变视角。我不希望它这样做。

var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();

document.addEventListener("mousedown",onMouseDown);

function onMouseDown(event) {
  mouse.x = (event.clientX / window.innerWidth) * 2 - 1;
  mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;

  raycaster.setFromCamera(mouse,camera);

  var dist = Box.position.clone().sub(camera.position).length();

  raycaster.ray.at(dist,Box.position);
  console.log(`mouse.x: ${event.clientX} mouse.y: ${event.clientY}`);
}

还有整个代码fiddle 链接https://jsfiddle.net/2jkhqnty/

P.S:如果我无法正确表达我的问题,请提前道歉,如果有人可以指导我方向或给出解决方案,我将不胜感激。 TIA

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。