THREEJS中通过Raycaster获取鼠标与模型的交互点
注意:group中存放模型
// 适用于通过json得到的sprite精灵绘制的
//点击射线
var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
// document.getElementById("container").addEventListener('mousedown', onDocumentMouseDown, false);
document.body.addEventListener('mousemove', onDocumentMouseMove, false);
function onDocumentMouseMove(event){event.preventDefault();mouse.x = (event.clientX / renderer.domElement.clientWidth) * 2 - 1;mouse.y = -(event.clientY / renderer.domElement.clientHeight) * 2 + 1;raycaster.setFromCamera(mouse, camera);var intersects = raycaster.intersectObjects([group], true);if (intersects.length > 0) {document.body.style.cursor = "pointer";}else{document.body.style.cursor = "default";}
}
document.body.addEventListener('mousedown', onDocumentMouseDown, false);
function onDocumentMouseDown(event) {// console.log(event)event.preventDefault();mouse.x = (event.clientX / renderer.domElement.clientWidth) * 2 - 1;mouse.y = -(event.clientY / renderer.domElement.clientHeight) * 2 + 1;raycaster.setFromCamera(mouse, camera);// 总结一下,这里必须装网格,mesh,装入组是没有效果的// 所以我们将所有的盒子的网格放入对象就可以了// 需要被监听的对象要存储在clickObjects中。// 返回射线选中的对象 第二个参数如果不填 默认是falsevar intersects = raycaster.intersectObjects([group], true);if (intersects.length > 0) {console.log(intersects)console.log([intersects[0].point.x, intersects[0].point.y]);var val = {lng: intersects[0].point.x,lat: intersects[0].point.y}//可以通过点击获取的坐标轴显示标签等}
}
THREEJS中通过Raycaster获取鼠标与模型的交互点相关推荐
- VUE使用Three.js实现模型,点击交互,相机旋转视角跟随移动(Threejs中使用Tweenjs,含demo源码)
目录 一.Three.js是什么? 二.VUE简单使用Three.js步骤 1.npm安装 2.template模板 3.引入库 4.定义全局变量 5.初始化场景 6.初始化相机 7.初始化灯光 8. ...
- 3D视图中获取鼠标所在位置
在3D视图中,经过旋转.缩放.平移之后,任然可以获取鼠标位置对应的真实坐标. 思路:获取OpenGL模型矩阵和投影矩阵, 对鼠标位置信息进行反投影计算. 主要函数: glReadPixels 通过深度 ...
- WPF中获取鼠标相对于桌面位置
原文:WPF中获取鼠标相对于桌面位置 var transform = PresentationSource.FromVisual(this).CompositionTarget.TransformFr ...
- WPF中获取鼠标相对于屏幕的位置
WPF中获取鼠标相对于屏幕的位置 周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...
- threejs中坐标系转换和实现物体跟随鼠标移动
坐标系转换 下面函数可以将鼠标所在点的屏幕坐标转化成一个Threejs三维坐标: convertTo3DCoordinate(clientX,clientY){var mv = new THREE.V ...
- 在高德地图中获取鼠标点击的经纬度
本文目录 一.注册高德开放平台 (一)创建应用 (二)添加 Key 二.代码实现 1. 引入必要的 CSS 文件与 JS 文件 2. 放置地图容器 3. 核心 JavaScript 代码 三.效果图 ...
- Fluent UDF 获取组分传输模型中的摩尔分数或分压力
很多朋友在开发Fluent模型中需要用UDF获取组分传输模型中的某气体组分的摩尔分数(或体积分数)或者分压力,但是UDF自带的只有获取质量分数的宏C_YI(c,t),需要自己写额外的代码去转换,有一定 ...
- html5 js获取鼠标坐标,js怎么获取鼠标在div中的相对位置
大家在做网页的时候都可能会用到鼠标在div中的相对位置,那么怎么获取鼠标在div中的相对位置呢?下面由学习啦小编教大家怎么获取鼠标在div中的相对位置吧. 如何获取鼠标在div中的相对位置 代码如下: ...
- 在3D世界中的获取鼠标的位置
原理 电脑的鼠标是在屏幕的2D坐标上运动的,而我们要获取的是3D世界中的一个三维坐标,在游戏引擎中的实现原理如下: 先获取鼠标在屏幕上的2D坐标. 结合摄像机平面计算出这个点在3D世界中的坐标. 从这 ...
最新文章
- Laya 位图字体制作(失败...)
- 小程序支付 PHP
- 软件设计思维:软件应该可以增大可以减小
- 福州大学软工 1715 | K 班 - 启航
- .NET Core 2.1.5和.NET Core SDK 2.1.403发布
- 【图像分割】基于matlab遗传算法道路图像分割【含Matlab源码 779期】
- make的作用linux,Linux下./configure,make,make install的作用
- qq操作技巧 - 网上收集
- 人工智能导论(专家系统)
- 【有限元分析】圣维南原理
- pandas文件保存操作
- C语言,枚举法求两个数的最大公约数
- 微信小程序observers数据监听器的使用
- 2017杭州云栖大会 智能客服专场预热 — 用心服务客户,用云助力客服
- 随机梯度下降matlab,matlab随机梯度下降法
- 大数据课程设计python_大数据Python编程设计
- 【高等数学基础进阶】多元函数微分学-重极限、连续、偏导数、全微分
- In-memory Computing with SAP HANA读书笔记 - 第七章:Business continuity and resiliency for SAP HANA
- android图标分组名称唯美,Android 使用网络图片当图标创建快捷方式(整理版本)
- C#调用斑马打印机打印条码标签(支持COM、LPT、USB、TCP连接方式和ZPL、EPL、CPCL指令)【转】...
热门文章
- matlab中结束脚本运行_MBD开发过程中的持续集成应用
- 计算机应用基础18秋在线作业2-0005,[东北师范大学]《计算机应用基础》18秋在线作业3.docx...
- 2022前CSDN个人简介备份
- 巧妙刷新验证码的方法(转)
- Android 9,移动端网站开发工具
- Sql表结构及数据对比工具
- JAVA教程之常量与变量
- ZedBoard--(5)嵌入式Linux下的DMA测试(Direct Register Mode)(PS + PL)
- 【转贴】微软面试100题的答案
- 杨老师Python课程PPT课后习题