Package Exports
- jaggy-math
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (jaggy-math) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Jaggy-math is a work in progress library to support the development of jaggies.io, a pixel art paint and 3d rendering tool. Shout out to eadsjr who helped refine the code.
Installation
$ npm install jaggy-math
Points
Many of the functions simply streamline the manipulation of points. Any object with x, y, and z properties can be provided as parameters. For example, you would normaly use:
var newPoint = {
x: Math.round(point.x),
y: Math.round(point.y),
z: Math.round(point.z),
};
But instead you could simplify it to one line with:
var newPoint = JaggyMath.round(point);
Colors
The library can also convert between rgba color objects and hex color strings.
console.log(JaggyMath.rgbaToHex({ r:186, g:202, b:254, a:255 }));
Outputs #BACAFE
Pixel Primatives
So far the library has functions for rendering stroked lines, circles, and elipses. More primatives to come!
ctx.fillStyle = JaggyMath.rgbaToHex({ r: 255, g: 0, b:0 , a:255 });
JaggyMath.drawLine(ctx, {x: 10, y:8}, {x: 32, y:8});
JaggyMath.drawLine(ctx, {x: 8, y:12}, {x: 29, y:17});
JaggyMath.drawLine(ctx, {x: 6, y:16}, {x: 20, y:24});
ctx.fillStyle = JaggyMath.rgbaToHex({ r: 0, g: 255, b: 0 , a:255 });
JaggyMath.strokeEllipse(ctx, 24, 12, {x: 60, y:16});
ctx.fillStyle = JaggyMath.rgbaToHex({ r: 0, g: 0, b:255 , a:255 });
JaggyMath.strokeCircle(ctx, 24, {x: 104, y:16});
Outputs:

Other Fun Stuff
Use Pythagorean Theorem a lot? Try:
JaggyMath.pythag(a, b)
Need to find the sum of a series of consecutive intergers? Try:
JaggyMath.summate(n, n1)
Where n is the last interger. n1 is the starting interger and defautlts to 1.
More to come...
Keep in mind that this is a work in progress. Don't expect it to be super stable and fleshed out until version 1.0.0. Some of the stuff I have planned are matrix and vector transformations as well as image manipulation functions.