@antv/util
Version:
<h1 align="center">@antv/util</h1>
25 lines (22 loc) • 523 B
text/typescript
import { vec2 } from 'gl-matrix';
import { direction } from './direction';
/**
* 二维向量 v1 到 v2 的夹角
* @param v1
* @param v2
* @param direct
*/
export function angleTo(v1: [number, number], v2: [number, number], direct?: boolean): number {
const ang = vec2.angle(v1, v2);
const angleLargeThanPI = direction(v1, v2) >= 0;
if (direct) {
if (angleLargeThanPI) {
return Math.PI * 2 - ang;
}
return ang;
}
if (angleLargeThanPI) {
return ang;
}
return Math.PI * 2 - ang;
}