分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

threejs 世界坐标与屏幕坐标相互转换

发布时间:2023-09-06 01:37责任编辑:彭小芳关键词:js

屏幕坐标转世界坐标:

let pX = (screenPoint.x / this.scene.renderer.domElement.clientWidth) * 2 - 1;
let pY = - (screenPoint.y / this.scene.renderer.domElement.clientHeight) * 2 + 1;
 
//通过调用Vector3的unproject()方法(只有vector3能使用)
//注:pX, pY介于 -1 到1之间
let p = new THREE.Vector3(pX, pY, -1).unproject(this.scene.camera)
return  new THREE.Vector2(p.x,p.y);
 
 
世界坐标转屏幕坐标

let projector = new THREE.Projector();  

let world_vector = new THREE.Vector3(0,0,1);  

let vector = projector.projectVector(world_vector,this.scene.camera);  

let halfWidth = window.innerWidth / 2,

  halfHeight = window.innerHeight / 2;  

return {  

  x: Math.round(vector.x * halfWidth + halfWidth),  

   y: Math.round(-vector.y * halfHeight + halfHeight)  

}; 

threejs 世界坐标与屏幕坐标相互转换

原文地址:https://www.cnblogs.com/brainworld/p/8309415.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved