1
0
mirror of https://github.com/Pomax/BezierInfo-2.git synced 2025-09-28 09:09:00 +02:00

pure HTML

This commit is contained in:
Pomax
2020-08-03 18:27:33 -07:00
parent 0f7ee3d4ae
commit ce49ed985d
2467 changed files with 419021 additions and 40019 deletions

View File

@@ -0,0 +1,43 @@
/**
* A shape subpath
*/
class Segment {
constructor(type, factor) {
this.type = type;
this.factor = factor;
this.points = [];
}
add(p) {
this.points.push(p);
}
}
/**
* A complex shape, represented as a collection of paths
* that can be either polygon, Catmull-Rom curves, or
* cubic Bezier curves.
*/
class Shape {
constructor(type, factor) {
this.first = false;
this.segments = [];
this.addSegment(type, factor);
}
addSegment(type, factor) {
this.currentSegment = new Segment(type, factor);
this.segments.push(this.currentSegment);
}
vertex(p) {
if (!this.first) this.first = p;
else this.currentSegment.add(p);
}
}
/**
* Pathing type constants
*/
Shape.POLYGON = `Polygon`;
Shape.CURVE = `CatmullRom`;
Shape.BEZIER = `Bezier`;
export { Shape, Segment };