Three.js获取鼠标点击的三维坐标示例代码
程序员文章站
2022-04-10 18:30:38
由于工作需要,但是对于three.js又是一窍不通,网上的资料又很少,所以上来就让我获取坐标,真是一个头两个大。好歹最后终于实现了。
既然已经是想要获取鼠标点击的三维...
由于工作需要,但是对于three.js又是一窍不通,网上的资料又很少,所以上来就让我获取坐标,真是一个头两个大。好歹最后终于实现了。
既然已经是想要获取鼠标点击的三维坐标了,相信你camera对象和scene都已经有了,如果不了解的小伙伴,可以先去看一下这两个对象。这里主要说一下怎么获取到三维坐标,原理性的东西不提。上代码:
function ondocumentmousedown( event ) { event.preventdefault(); var vector = new three.vector3();//三维坐标对象 vector.set( ( event.clientx / window.innerwidth ) * 2 - 1, - ( event.clienty / window.innerheight ) * 2 + 1, 0.5 ); vector.unproject( camera ); var raycaster = new three.raycaster(camera.position, vector.sub(camera.position).normalize()); var intersects = raycaster.intersectobjects(scene.children); if (intersects.length > 0) { var selected = intersects[0];//取第一个物体 console.log("x坐标:"+selected.point.x); console.log("y坐标:"+selected.point.y); console.log("z坐标:"+selected.point.z); }
我理解的就是鼠标点击的时候屏幕收到的是二维坐标,这个二维坐标和相机连线,在视角的方向上延伸,形成一条射线,这条射线会和场景中的物体相交,接收这些相交的所有物体,第一个物体就是离相机最近的,最后一个就是离相机最远的。一般就把第一个相交的物体作为鼠标点击的物体。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
超简单的java获取鼠标点击位置坐标的实例(鼠标在Jframe上的坐标)
-
Three.js获取鼠标点击的三维坐标示例代码
-
详解Three.js获取鼠标点击的三维坐标的示例代码
-
通过JS 获取Mouse Position(鼠标坐标)的代码_javascript技巧
-
js获取鼠标点击的位置实现思路及代码_javascript技巧
-
js获取鼠标点击的位置实现思路及代码_javascript技巧
-
通过JS 获取Mouse Position(鼠标坐标)的代码_javascript技巧
-
超简单的java获取鼠标点击位置坐标的实例(鼠标在Jframe上的坐标)
-
Jquery使用mouseenter和mouseleave事件实现鼠标经过弹出层且可以点击的示例代码分享
-
javascript获取鼠标点击元素对象(示例代码)_javascript技巧