three.js数学函数向量夹角弧度转角度

版权声明:本文为作者的原创文章,未经允许不得转载。 https://blog.csdn.net/lin5165352/article/details/87863243

three.js数学库

three.js中内置了很多数学库,功能丰富,但是很多都没实际用过。现在慢慢整理记录一些常用的函数,加深印象吧。

Box2
Box3
Color
Cylindrical
Euler
Frustum
Interpolant
Line3
Math
Matrix3
Matrix4
Plane
Quaternion
Ray
Sphere
Spherical
Triangle
Vector2
Vector3
Vector4

three.js中角度弧度互相转换

math库的使用方式是THREE.Math.xxx

  • .degToRad ( degrees : Float ) : Float
    将度转化为弧度。
    例如将90度转化弧度:THREE.Math.degToRad(90); //1.5707963267948966
  • .radToDeg ( radians : Float ) : Float
    将弧度转换为角度。
    例如将1.57(弧度)转化为角度:THREE.Math.radToDeg(1.57); //89.95437383553924

Vector3计算向量夹角

  • .angleTo ( v : Vector3 ) : Float
    以弧度返回该向量与向量v之间的角度。

      _a = new THREE.Vector3(1,0,0); 
      _b = new THREE.Vector3(1,1,0); 
      _a.angleTo(_b);
    

计算一个物体和相机的夹角

在这里插入图片描述
以场景中心为原点。物体和相机的的向量就分别为.position。一定要是在世界坐标系的中位置。

	var _a = object.position;
    var _b = camera.position;
    var _c = THREE.Math.radToDeg(_a.angleTo(_b));
    // _c 就是物体和相机夹角
    // 如果object是一个子对象,其position为(0,0,0)的话。我们可以用.getWorldPosition ( target : Vector3 )方法获取其世界坐标然后在计算。
    var _p = new THREE.Vector3(0,0,0);
    object.getWorldPosition(_p);
    // _p 就是object的世界坐标
  • .getWorldPosition ( target : Vector3 ) : Vector3
    target — 结果将被复制到这个Vector3中。
    返回一个表示该物体在世界空间中位置的矢量。
    target属性是非必须,但是最好加上。

猜你喜欢

转载自blog.csdn.net/lin5165352/article/details/87863243