如何将three.js坐标体系中的坐标转换为二维坐标

这篇博客介绍了一个使用Three.js库的场景中,如何将三维空间中的坐标点转换为二维屏幕坐标的过程。通过获取元素大小,创建THREE.Vector3对象,应用相机投影,再进行坐标转换和归一化,最终得到适合在屏幕上显示的二维坐标。这对于在3D图形中定位2.5D图标尤其有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:
在这里插入图片描述

线条是three.js开发的,每条线条的开始位置需要放一个2.5D的图标,所以就需要把三维的坐标转为二维

const myObj = document.getElementById(dom);
const width = myObj.clientWidth;
const height = myObj.clientHeight;
const pos = {x:10,y:10,z:10};
function getPosition(pos = {}) {
    let a = new THREE.Vector3(pos.x, pos.y, pos.z);
    let vector = a.project(camera);
    let halfWidth = width / 2;
    let halfHeight = height / 2;
    let result = {
        x: Math.round(vector.x * halfWidth + halfWidth),
        y: Math.round(-vector.y * halfHeight + halfHeight)

    };
    return result
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值