import { Vec2, Vec3 } from "cc"; export class Vec3Util { //获得两个三维向量的差 static sub(pos1: Vec3, pos2: Vec3) { let out = new Vec3(); Vec3.subtract(out, pos1, pos2); return out; } //三维向量乘以常量 static mul(pos: Vec3, scalar: number) { let out = new Vec3(); Vec3.multiplyScalar(out, pos, scalar); return out; } //三维向量除常量 static div(pos: Vec3, scalar: number) { let out = new Vec3(); out.x = pos.x / scalar; out.y = pos.y / scalar; out.z = pos.z / scalar; return out; } //两个三维向量是否相等 static equals(pos1: Vec3, pos2: Vec3) { return (pos1.x == pos2.x && pos1.y == pos2.y && pos1.z == pos2.z) ? true : false; } //获得pos1到pos2的方向 static direction(pos1: Vec3, pos2: Vec3) { let out = new Vec3(); Vec3.subtract(out, pos2, pos1) return out.normalize(); } //获得pos1到pos2的距离 static distance(pos1: Vec3, pos2: Vec3) { let temp1 = pos1.clone(), temp2 = pos2.clone(); temp1.z = temp2.z = 0; return Vec3.distance(temp1, temp2); } }