123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- 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);
- }
- }
|