新增box复合体 修复vector2运算问题

This commit is contained in:
YHH
2020-06-11 00:03:26 +08:00
parent 74cbb4c9fd
commit 2eec9a82f9
28 changed files with 1154 additions and 200 deletions

View File

@@ -3,17 +3,6 @@ class Vector2 {
public x: number = 0;
public y: number = 0;
private static readonly zeroVector = new Vector2(0, 0);
private static readonly unitVector = new Vector2(1, 1);
public static get One(){
return this.unitVector;
}
public static get Zero(){
return this.zeroVector;
}
/**
* 从两个值构造一个带有X和Y的二维向量。
* @param x 二维空间中的x坐标
@@ -25,26 +14,30 @@ class Vector2 {
}
public static add(value1: Vector2, value2: Vector2){
value1.x += value2.x;
value1.y += value2.y;
return value1;
let result: Vector2 = new Vector2(0, 0);
result.x = value1.x + value2.x;
result.y = value1.y + value2.y;
return result;
}
public static divide(value1: Vector2, value2: Vector2){
value1.x /= value2.x;
value1.y /= value2.y;
let result: Vector2 = new Vector2(0, 0);
result.x = value1.x / value2.x;
result.y = value1.y / value2.y;
return value1;
}
public static multiply(value1: Vector2, value2: Vector2){
value1.x *= value2.x;
value1.y *= value2.y;
return value1;
let result: Vector2 = new Vector2(0, 0);
result.x = value1.x * value2.x;
result.y = value1.y * value2.y;
return result;
}
public static subtract(value1: Vector2, value2: Vector2){
value1.x -= value2.x;
value1.y -= value2.y;
let result: Vector2 = new Vector2(0, 0);
result.x = value1.x - value2.x;
result.y = value1.y - value2.y;
return value1;
}
@@ -55,6 +48,10 @@ class Vector2 {
this.y *= val;
}
public length(){
return Math.sqrt((this.x * this.x) + (this.y * this.y));
}
/**
* 返回两个向量的点积
* @param value1
@@ -77,4 +74,9 @@ class Vector2 {
public static transform(position: Vector2, matrix: Matrix2D){
return new Vector2((position.x * matrix.m11) + (position.y * matrix.m21), (position.x * matrix.m12) + (position.y * matrix.m22));
}
public static distance(value1: Vector2, value2: Vector2){
let v1 = value1.x - value2.x, v2 = value1.y - value2.y;
return Math.sqrt((v1 * v1) + (v2 * v2));
}
}