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左右。

发布了402 篇原创文章 · 获赞 544 · 访问量 212万+

猜你喜欢

转载自blog.csdn.net/qq_30100043/article/details/89810160