How to use the @antv/gl-matrix/lib/gl-matrix/vec2.angleTo function in @antv/gl-matrix

To help you get started, we’ve selected a few @antv/gl-matrix examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github antvis / util / packages / matrix-util / src / vec2.ts View on Github external
vec2.angle = function (v1, v2) {
  const theta = vec2.dot(v1, v2) / (vec2.length(v1) * vec2.length(v2));
  return Math.acos(clamp(theta, -1, 1));
};

/**
 * 向量 v1 到 向量 v2 夹角的方向
 * @param  {Array} v1 向量
 * @param  {Array} v2 向量
 * @return {Boolean} >= 0 顺时针 < 0 逆时针
 */
vec2.direction = function (v1: number[], v2: number[]): number {
  return v1[0] * v2[1] - v2[0] * v1[1];
};

vec2.angleTo = function (v1: number, v2: number, direct: boolean): number {
  const angle = vec2.angle(v1, v2);
  const angleLargeThanPI = vec2.direction(v1, v2) >= 0;
  if (direct) {
    if (angleLargeThanPI) {
      return Math.PI * 2 - angle;
    }

    return angle;
  }

  if (angleLargeThanPI) {
    return angle;
  }
  return Math.PI * 2 - angle;
};

@antv/gl-matrix

Javascript Matrix and Vector library for High Performance WebGL apps

MIT
Latest version published 6 years ago

Package Health Score

62 / 100
Full package analysis

Similar packages