SkillAgentSearch skills...

Vector

2D and 3D Vector classes for game development and physics simulations

Install / Use

/learn @coderosh/Vector
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

vector

2D and 3D Vector classes for game development and physics simulations.

<a href="https://www.npmjs.com/package/@coderosh/vector"><img alt="NPM" src="https://img.shields.io/npm/v/@coderosh/vector" /></a> <a href="https://github.com/coderosh/vector"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue.svg" /></a> <a href="#"><img alt="CI" src="https://img.shields.io/github/workflow/status/coderosh/vector/CI"></a> <a href="https://github.com/coderosh/vector"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs welcome!" /></a> <a href="https://github.com/coderosh/vector"><img src="https://img.shields.io/badge/types-typescript-blue.svg" alt="Typescript" /></a>

Installation

Install via npm

npm install @coderosh/vector

Or via yarn

yarn add @coderosh/vector

Usage

import { Vector2D, Vector3D } from '@coderosh/vector'

/* 3D Vector */
new Vector3D(1, 4, 1)

/* 2D Vector */
new Vector2D(1, 3)

Available methods

Documentation

add

Adds two vectors

const vec3d = new Vector3D(1, 2, 3)
vec3d.add(4, 5, 6)
vec3d.add(new Vector3D(4, 5, 6))

const vec2d = new Vector2D(1, 2)
vec2d.add(4, 5)
vec2d.add(new Vector2D(4, 5))

sub

Substracts two vectors

const vec3d = new Vector3D(1, 2, 3)
vec3d.sub(4, 5, 6)
vec3d.sub(new Vector3D(4, 5, 6))

const vec2d = new Vector2D(1, 2)
vec2d.sub(4, 5)
vec2d.sub(new Vector2D(4, 5))

scale

Multiply a vector by a scalar factor

const vec3d = new Vector3D(1, 2, 3)
vec3d.scale(2)

const vec2d = new Vector2D(1, 2)
vec2d.scale(2)

lenSqr

Square of length of vector

const vec3d = new Vector3D(1, 2, 3)
vec3d.lenSqr()

const vec2d = new Vector2D(1, 2)
vec2d.lenSqr()

len

Length of vector

const vec3d = new Vector3D(1, 2, 3)
vec3d.len()

const vec2d = new Vector2D(1, 2)
vec2d.len()

normalize

Normalize the vector

const vec3d = new Vector3D(1, 2, 3)
vec3d.normalize()

const vec2d = new Vector2D(1, 2)
vec2d.normalize()

dist

Calculate distance between two vectors

const vec3d = new Vector3D(1, 2, 3)
vec3d.dist(5, 2, 3)
vec3d.dist(new Vector3D(5, 2, 3))

const vec2d = new Vector2D(1, 2)
vec2d.dist(5, 2)
vec2d.dist(new Vector2D(5, 2))

equals

Check if two vectors have same coordinates

const vec3d = new Vector3D(1, 2, 3)
vec3d.equals(1, 2, 3)
vec3d.equals(new Vector3D(1, 2, 3))

const vec2d = new Vector2D(1, 2)
vec2d.equals(1, 2)
vec2d.equals(new Vector2D(1, 2))

dot

Returns dot product of two vectors

const vec3d = new Vector3D(1, 2, 3)
vec3d.dot(1, 1, 2)
vec3d.dot(new Vector3D(1, 1, 2))

const vec2d = new Vector2D(1, 2)
vec2d.dot(4, 2)
vec2d.dot(new Vector2D(4, 2))

cross

Returns cross product of two vectors

const vec = new Vector3D(1, 2, 3)
vec.cross(1, 2, 4)
vec.cross(new Vector3D(1, 2, 4))

lerp

Linear interpolate vectors

const vec3d = new Vector3D(1, 2, 3)
vec3d.lerp(1, 1, 2, 0.1)
vec3d.lerp(new Vector3D(1, 1, 2), 0.1)

const vec2d = new Vector2D(1, 2)
vec2d.lerp(4, 2, 0.1)
vec2d.lerp(new Vector2D(4, 2), 0.1)

slerp

Spherical linear interpolate vectors

const vec = new Vector3D(1, 0, 0)
vec.slerp(new Vector3D(0, 1, 0), 0.5)
vec.slerp(0, 1, 0, 0.5)

nlerp

Linear interpolate vectors and normalize

const vec3d = new Vector3D(1, 2, 3)
vec3d.nlerp(1, 1, 2, 0.1)
vec3d.nlerp(new Vector3D(1, 1, 2), 0.1)

const vec2d = new Vector2D(1, 2)
vec2d.nlerp(4, 2, 0.1)
vec2d.nlerp(new Vector2D(4, 2), 0.1)

copy

const vec3d = new Vector3D(1, 2, 3)
const newVec3d = vec3d.copy()
const newVec3d_ = new Vector(vec3d)

const vec2d = new Vector3D(1, 2, 3)
const newVec2d = vec2d.copy()
const newVec2d_ = new Vector(vec2d)

LICENSE

MIT

View on GitHub
GitHub Stars7
CategoryDevelopment
Updated3y ago
Forks0

Languages

TypeScript

Security Score

75/100

Audited on Mar 8, 2023

No findings