2.0.0 • Published 3 years ago
@leodeslf/inverse-kinematics v2.0.0
Inverse Kinematics
____ ____ ____
~~/ /\~~~/ /\~~~~~~~_/ __/\~~~
~~/ / /~~/ / /~~~~_/ __/\_\/~~
~~/ / /~~/ / /~~_/ __/\_\/~~~~
~~/ / /~~/ / /_/ __/\_\/~~~~~~
~~/ / /~~/ /_/ /\_\/~~~~~~~~
~~/ / /~~/ ____ \/~~~~~~~~~~
~~/ / /~~/ /\___\ \~~~~~~~~~
~~/ / /~~/ / /~~~~\ \~~~~~~~
~~/___/ /~~/___/ /~~~~~~\___\~~~~~
~~~\___\/~~~\___\/~~~~~~~~\___\~~~
About
A class to create an IK module in 2D for JavaScript.
Shapes
|Module
|---
|body: Segment[]
|segments: number
|set anchor(value: Vec2 \| undefined)
|set target(value: Vec2)
|update(): void
|Segment
|---
|angle: number
|end: Vec2
|base: Vec2
|segmentSize: number
|desiredTarget: Vec2 \| undefined
|desiredAnchor: Vec2 \| undefined
|anchor(): void
|link(): void
|lookAt(): void
Install
npm i @leodeslf/inverse-kinematics
Import
import Module from '@leodeslf/inverse-kinematics';
Usage
const module = new Module(
8, // Amount of segments (number).
20, // Segments' size (number).
target, // Module's target (Vec2).
anchor // Module's anchor (Vec2, optional).
);
// Update each body segment (lookAt + anchor + link).
module.update();
/**
* We can, for instance, animate and draw each segment on a canvas and
* update the `target` position as the mouse moves. See demo below.
*/
Live demo here (1000 segments of 1px each).
Author
License
MIT License.
2.0.0
3 years ago