110 THREE.JS 获取一个点,沿坐标轴的偏转

如果让我们自己算,需要通过三角函数自己求。

好在,Three.js封装了自己的数学库,里面有相关的对象,叫Spherical类。这是一个虚拟的球坐标类,我们可以定义一个点通过此类获取到当前的偏转弧度。

实例化此类需要三个值:radius phi theta
radius代表当前点距离原点的距离。
phi代表从Y轴正方向沿X轴的旋转角度。
theta代表从Z轴正方向逆时针沿Y轴旋转的角度。

这三个值也是Spherical类的属性,接下来我们尝试使用此类和一个顶点来获取到偏转的弧度。

已知一个点的坐标为 1,1,1 ,球它的偏转弧度,我们可以这样:
首先实例化一个类:

const spherical = new THREE.Spherical();

然后通过类的方法:setFromVector3传入一个三维坐标对象,或者setFromCartesianCoords依次传入xyz三轴的坐标:

spherical.setFromCartesianCoords(1, 1, 1);

然后依次打印它的三个属性

console.log(spherical.radius);  //1.7320508075688772
console.log(spherical.phi/ Math.PI * 180); //54.73561031724534
console.log(spherical.theta/ Math.PI * 180); //45

说明此点,从y轴偏转了45度,然后从y轴正方向向下偏转了54度多,距离原点是1.73左右。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值