init framework
This commit is contained in:
46
source/src/Math/Vector2.ts
Normal file
46
source/src/Math/Vector2.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
/** 2d 向量 */
|
||||
class Vector2 {
|
||||
public x: number;
|
||||
public y: number;
|
||||
|
||||
/**
|
||||
* 从两个值构造一个带有X和Y的二维向量。
|
||||
* @param x 二维空间中的x坐标
|
||||
* @param y 二维空间的y坐标
|
||||
*/
|
||||
constructor(x: number, y: number){
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public static add(value1: Vector2, value2: Vector2){
|
||||
value1.x += value2.x;
|
||||
value1.y += value2.y;
|
||||
return value1;
|
||||
}
|
||||
|
||||
public static divide(value1: Vector2, value2: Vector2){
|
||||
value1.x /= value2.x;
|
||||
value1.y /= value2.y;
|
||||
return value1;
|
||||
}
|
||||
|
||||
public static multiply(value1: Vector2, value2: Vector2){
|
||||
value1.x *= value2.x;
|
||||
value1.y *= value2.y;
|
||||
return value1;
|
||||
}
|
||||
|
||||
public static subtract(value1: Vector2, value2: Vector2){
|
||||
value1.x -= value2.x;
|
||||
value1.y -= value2.y;
|
||||
return value1;
|
||||
}
|
||||
|
||||
/** 变成一个方向相同的单位向量 */
|
||||
public normalize(){
|
||||
let val = 1 / Math.sqrt((this.x * this.x) + (this.y * this.y));
|
||||
this.x *= val;
|
||||
this.y *= val;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user