首页 > 其他分享 >three.js的物体点击事件

three.js的物体点击事件

时间:2024-02-18 16:13:37浏览次数:17  
标签:THREE raycaster intersects window three 点击 js mouse event

直接粘贴无脑用  !!!vue文件执行要现在初始化方法里面调用一下 onclickS() {     let raycaster = new THREE.Raycaster();       let mouse = new THREE.Vector2();           function onmodelclick(event) {         mouse.x = (event.clientX / window.innerWidth) * 2 - 1;         mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;         raycaster.setFromCamera(mouse, camera);         const intersects = raycaster.intersectObjects(scene.children);         console.log(intersects.length > 0 ? intersects[0].object : '');       }       window.addEventListener("click", onmodelclick);     },   ---------------------------华丽分割线----------------------------------------   创建一个新的射线投射器对象,用于从鼠标点击位置生成一条射线,并检测这条射线是否与场景中的任何物体相交。   let raycaster = new THREE.Raycaster(); 创建一个新的二维向量对象,用于存储鼠标点击位置在归一化设备坐标(NDC)中的x和y值。   let mouse = new THREE.Vector2(); 创建一个方法     function onmodelclick(event) {   将鼠标位置转换为归一化设备坐标  (归一化坐标:将所有要渲染的物体映射到x轴、y轴、z轴上的[-1, 1]范围内。这种映射使得坐标独立于屏幕的实际尺寸或形状,提供了一种标准化的方式来处理图形渲染和显示。)         mouse.x = (event.clientX / window.innerWidth) * 2 - 1;         mouse.y = -(event.clientY / window.innerHeight) * 2 + 1;   使用当前相机和鼠标位置设置射线投射器的起点和方向         raycaster.setFromCamera(mouse, camera);   与射线相交的物体数组集合         const intersects = raycaster.intersectObjects(scene.children);         console.log(intersects.length > 0 ? intersects[0].object : '');       } window.addEventListener("click", onmodelclick);  

标签:THREE,raycaster,intersects,window,three,点击,js,mouse,event
From: https://www.cnblogs.com/Qinhr/p/18019415

相关文章

  • 【c&c++】cJSON详解
    一、JSON概述1.1JSON介绍JSON:JavaScript对象表示法(JavaScriptObjectNotation)。是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似C语音家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON......
  • 【总结】HTML+JS逆向混淆混合
    国外的题果然考的与众不同[secrypt_cen.html]这次是HTML网页,然后JS加密判断翻看JS代码很显然,关键的代码在checkPasswordJS混淆是必备的去混淆一条龙走起先将关键代码提取出来 JavaScript function_0x4857(_0x398c7a,_0x2b4590){const_0x104914= _0x25ec(......
  • Vue.js前端框架之vite+vue+naive前端项目模板
    1.搭建Vue示例项目npmcreatevue cdvue-demo:进入项目目录npminstall:安装所有依赖npmrundev:启动项目2.了解Vue开发和工作原理2.1package.json类似于Python项目中pyproject.toml,包含了项目名称、版本、命令、依赖、设定2.2index.html浏览器访问到的HTML文件 ......
  • odoo jsonrpc
    importjsonimportpprintimportrandomimporturllib.requestHOST='192.168.2.21'PORT=8069DB='wywr17'#数据库名称USER=''#登录用户名PASS=''#登录密码defjson_rpc(url,method,params):data={"......
  • VSCOde+Nodejs+Typescript前端开发环境
    1.安装Node.js下载地址:https://nodejs.org/enlts版本:长久稳定版本安装:默认安装就可以了验证:node2.VSCode下载地址:https://code.visualstudio.com/Download安装:默认安装语言切换:安装中文插件,重启 2.1修改终端cmd模式:1.点击设置图标,选择CommandPalette 2.输入:Ter......
  • P1198 [JSOI2008] 最大数
    原题链接题解1:单调栈+并查集?单调栈特性:栈内元素大小和序号由栈底到栈顶具有单调性,本题大小单调减,序号单调增维护:新元素入栈时,栈内剩余的所有小于该元素的元素出栈,并视新元素为集合首领,然后新元素入栈查询:查询集合首领即可code1#definelllonglong#include<bits/stdc++.h>......
  • JSON相关注解的使用
    1.@JsonInclude当使用json进行序列化时,往往会遇到某个实体对象的属性为null,可以使用如下类注解使得属性值为null的时候Java Bean不参与序列化可以作用在类上,也可以作用在字段上@JsonInclude(JsonInclude.Include.NON_NULL)     其他常量值包括:Include.Include.ALWAYS   ......
  • idea里集成uglifyjs实现自动和手动压缩混淆js
    项目中可能会多次修改某些*.js文件,但是引用的是*.min.js,所以需要再改完源码后生成压缩的min.jsuglifyjs是个不错的工具,但是单独用略显麻烦,如果能整合到idea就好了。正好idea有这个功能。 1.安装nodejshttps://nodejs.org/dist/v8.9.3/node-v8.9.3-x64.msi   下......
  • JSDoc 注释 和 // 的区别。分别用在什么场景
    JSDoc注释和`//`注释在JavaScript中都用于添加代码说明,但它们的用途和格式有所不同,适用于不同的场景。###JSDoc注释JSDoc是一种标记语言,用于为JavaScript代码添加文档注释。它允许你使用特殊的标签(如`@param`、`@return`)来描述函数的参数、返回值、类、和其他重要信......
  • Cocos Creator 2.X(Cocos2d-js)游戏资源目录分析&逆向还原
    拿到了某变态服游戏,打开lib看到了libcocos2djs.so,判断版本为2.4。游戏把资源文件下载到了/data下,因此需要root。目录结构如下:g4-start/├──config.json├──import│ ├──1e│ │ └──1ea6e4bcd.json│ └──e7│   └──e76cb2d2-fa48-4916-......