callBack方式实现threejs点击事件Raycaster

我用的的示例类发方式来初始化场景。

类里面定义点击方法。

initMouse(fun) {window.addEventListener("click", (event) => {this.clickObject(event, fun);});}// 鼠标事件clickObject(event, fun) {// 计算点击位置的归一化设备坐标const mouse = new THREE.Vector2();mouse.x = (event.clientX / window.innerWidth) * 2 - 1;mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;// 创建射线投射器const raycaster = new THREE.Raycaster();raycaster.setFromCamera(mouse, this.camera);// 获取与射线相交的物体数组const intersects = raycaster.intersectObjects(this.scene.children, true);if (intersects.length > 0) {// intersects[0].object 是与射线相交的第一个物体const clickedObject = intersects[0].object;// 这里可以进一步处理点击的物体fun(intersects[0].object);// clickedObject.material.color.set(0xff0000); // 设置点击物体的颜色为红色}}

使用时调用initMouse传入回调函数。

 ffThree.initMouse(callBack);function callBack(obje) {console.log("obje为选中的物体 下面写对选中物体做的事情");obje.material.color.set(0xff0000);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44238.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IO模型理论学习

1、什么是IO 计算机视角下的io AIO

“泰迪·曲靖师范学院数学与统计学院数据科学教学实训平台”工作室签约揭牌仪式圆满结束

为深化校企合作,实现应用型人才培养目标。泰迪智能科技携手曲靖师范学院数学与统计学院共建“数据科学教学实训平台工作室”。 2024年7月10日,“‌泰迪数学与统计学院数据科学教学实训平台”工作室揭牌仪式在曲靖师范学院举行。泰迪智能科技昆明分公司院…

LPRNet 车牌识别部署 rk3588(pt-onnx-rknn)包含各个步骤完整板端代码

虽然车牌识别技术很成熟了,但完全没有接触过。一直想搞一下、整一下、试一下、折腾一下,工作之余找了一个简单的例子入个门。本博客简单记录一下 LPRNet 车牌识别部署 rk3588流程,训练参考 LPRNet 官方代码。 1、导出onnx   导出onnx很容易…

SW - 将面导出为dxf

文章目录 SW - 将面导出为dxf概述笔记原点问题END SW - 将面导出为dxf 概述 在做PCB板框. 以前做过一个笔记,用autoCAD来制作导出dxf(cadence SPB17.4 - 用autoCAD2022画一个PCB板框)。 不喜欢用autoCAD(相对麻烦), 还是喜欢用SW&#xff0…

异步日志:性能优化的金钥匙

一、背景 2024 年 4 月的一个宁静的夜晚,正当大家忙完一天的工作准备休息时,应急群里“咚咚咚”开始报警,提示我们余利宝业务的赎回接口成功率下降。 通过 Monitor 监控发现,该接口的耗时已经超过了网关配置的超时阈值(2s)&#…

Spring Cloud Alibaba整合Seata实战

Spring Cloud Alibaba整合Seata实战 1.启动Seata Server 1.1 环境准备 1)指定nacos作为配置中心和注册中心 修改registry.conf文件 注意:客户端配置registry.conf使用nacos时也要注意group要和seata server中的group一致,默认group是&quo…

Linux--生产消费模型

线程系列: Linux–线程的认识(一) Linux–线程的分离、线程库的地址关系的理解、线程的简单封装(二) 线程的互斥:临界资源只能在同一时间被一个线程使用 生产消费模型 生产消费模型是多线程编程和分布式系统中的一个经典概念&…

我们水冷使制动电阻功率密度成倍增加-水冷电阻设计工厂

先进陶瓷 我们后来发现工业应用中对占用空间最小的水冷电阻器的工业需求,推出了适用于中压工业应用的水冷电阻器。它的特点是两块由具有特殊性能的先进陶瓷制成的板。 使用工业电驱动装置的一个重要好处是,可靠的再生和动态制动系统可以补充或取代传统…

Laravel :如何将Excel文件导入数据库

文章目录 一、前提二、使用2.1、新建一个导入文件2.2、新建一个控制器和方法,调用导入文件2.3、 新建一个页面,支持文件上传 一、前提 想要将excel内容入库,laravel有扩展可以使用,常用的扩展是maatwebsite/excel,安装步骤参考上一篇&#x…

Mosh|SQL教程第四弹(未完)

SQL有很多自带的内聚的函数(MAX、MIN、AVG、SUM、COUNT) 一、聚合函数(Aggregate Functions) 这里的括号可以写列名也可以写表达式,下面是一个练习: 二、GROUP BY子句 统计2019-07-01以后每个客户的总销售额 注意这…

Javaweb11-Filter过滤器

Filter过滤器 1.Filter的基本概念: 在Java Servlet中,Filter接口是用来处理HttpServletRequest和HttpServletResponse的对象的过滤器。主要用途是在请求到达Servlet之前或者响应离开Servlet之前对请求或响应进行预处理或后处理。 2.Filter常见的API F…

探展2024世界人工智能大会之合合信息扫描黑科技~

文章目录 ⭐️ 前言⭐️ AIGC古籍修复文化遗产焕新⭐️ 高效的文档图像处理解决方案⭐️ AIGC扫描黑科技一键全搞定⭐️ 行业级的大模型加速器⭐️ 结语 ⭐️ 前言 大家好,我是 哈哥(哈哥撩编程) ,这次非常荣幸受邀作为专业观众参…

重磅!新公司法正式实施,这些变化你必须知道! ️

新公司法来了!企业设立和经营必知的关键变动 🏛️🚀 大家好,我是猫头虎,科技自媒体博主。今天我们来聊聊一件大事——新公司法的实施,这对企业设立和经营带来了哪些重大影响?跟着我&#xff0c…

【DDIM】DENOISING DIFFUSION IMPLICIT MODELS【论文精读】【视频讲解】【公式推导】

论文:DENOISING DIFFUSION IMPLICIT MODELS(https://arxiv.org/abs/2010.02502) B站视频链接 DDIM论文精讲视频 去噪扩散隐模型的论文精读,涉及本文的大部分公式逐步推导。总计3小时的详细论文讲解。 讲解详细对应文档 DDIM视频…

聊聊mysql

记录那些坑 本文会持续更新,陆续更新有关mysql技术内幕、实战优化、面试技巧。 文章目录 前言索引BTree之聚集索引BTree之辅助索引BTree之联合索引BTree之覆盖索引 使用到的工具1、py_innodb_page_info工具2、hexdump工具 总结 前言 重中之重的MySql数据库 mysql…

概率论期末速成(知识点+例题)

考试范围 一: 事件关系运算性质全概率公式、贝叶斯公式古典概型 二: 离散分布律连续密度函数性质 -> 解决三个问题(求待定系数、求概率、求密度函数)分布函数 -> 解决三个问题常用分布(最后一节课的那几个分…

手电筒的光能飞到宇宙尽头吗

如果我们打开手电筒向夜空照一秒再关掉,我们将会看到,在关掉手电筒的一瞬间,手电筒发出的光束也会消失,那么,它发出的光哪去了呢?下面我们就来聊一下这个话题。实际上,我们看到的光束&#xff0…

Spark SQL 概述

Spark SQL 概述 Spark SQL 是 Apache Spark 的一个模块,专门用于处理结构化数据。它集成了 SQL 查询和 Spark 编程的强大功能,使得处理大数据变得更加高效和简便。通过 Spark SQL,用户可以直接在 Spark 中使用 SQL 查询,或者使用 …

ubuntu16.04安装低版本cmake(安装cmake安装)

文章目录 ubuntu16.04安装低版本cmake(安装cmake安装)1. **下载并解压CMake压缩文件**:- 首先,你需要从CMake的官方网站或其他可靠来源下载cmake-2.8.9-Linux-i386.tar.gz文件。- 然后在终端中使用以下命令解压文件: 2…

BFS:多源BFS问题

一、多源BFS简介 超级源点&#xff1a;其实就是把相应的原点一次性都丢到队列中 二、01矩阵 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:const int dx[4]{1,-1,0,0};const int dy[4]{0,0,1,-1};vector<vector<int>> updateMatrix(vector…