2.7 KiB
2.7 KiB
Vector2D Library for TypeScript
A comprehensive TypeScript library for 2D vector operations, including addition, subtraction, multiplication, division, normalization, and more. Ideal for game development, physics simulations, and graphical applications.
Features
- Create and manipulate 2D vectors
- Perform vector arithmetic (addition, subtraction, multiplication, division)
- Calculate dot and cross products
- Normalize vectors
- Calculate magnitude and distance between vectors
- Rotate vectors
- Linear interpolation between vectors
Installation
You can install the library using npm:
npm install vector2d
Usage
Here's a quick example of how to use the Vector2D class:
import { Vector2D } from 'vector2d';
const vector1 = new Vector2D(3, 4);
const vector2 = new Vector2D(1, 2);
// Vector addition
const result = vector1.add(vector2);
console.log(`Result of addition: (${result.getX()}, ${result.getY()})`);
// Vector normalization
const normalized = vector1.normalize();
console.log(`Normalized vector: (${normalized.getX()}, ${normalized.getY()})`);
API Reference
Vector2D
Constructor
constructor(x: number, y: number)
x - The x-coordinate.
y - The y-coordinate.
Methods
- `getX(): number` - Gets the x-coordinate.
- `getY(): number` - Gets the y-coordinate.
- `setX(x: number): void` - Sets the x-coordinate.
- `setY(y: number): void` - Sets the y-coordinate.
- `set(x: number, y: number): void` - Sets both the x and y coordinates.
- `add(vector: Vector2D): Vector2D` - Adds another vector to this vector.
- `subtract(vector: Vector2D): Vector2D` - Subtracts another vector from this vector.
- `multiply(scalar: number): Vector2D` - Multiplies this vector by a scalar.
- `divide(scalar: number): Vector2D` - Divides this vector by a scalar.
- `dot(vector: Vector2D): number` - Calculates the dot product of this vector and another vector.
- `cross(vector: Vector2D): number` - Calculates the cross product of this vector and another vector.
- `magnitude(): number` - Calculates the magnitude (length) of this vector.
- `normalize(): Vector2D` - Normalizes this vector (makes it have a magnitude of 1).
- `clone(): Vector2D` - Creates a copy of this vector.
- `equals(vector: Vector2D): boolean` - Checks if this vector is equal to another vector.
- `toString(): string` - Returns a string representation of this vector.
- `distance(vector: Vector2D): number` - Calculates the distance to another vector.
- `angle(): number` - Calculates the angle of this vector relative to the positive X-axis.
- `rotate(angle: number): Vector2D` - Rotates this vector by a given angle.
- `lerp(vector: Vector2D, t: number): Vector2D` - Performs linear interpolation between this vector and another vector.