mirror of
https://github.com/Pomax/BezierInfo-2.git
synced 2025-10-03 19:41:52 +02:00
50 lines
972 B
JavaScript
50 lines
972 B
JavaScript
let curve;
|
|
|
|
setup() {
|
|
let type = getParameter(`type`, `quadratic`);
|
|
if (type === `quadratic`) {
|
|
curve = Bezier.defaultQuadratic(this);
|
|
} else {
|
|
curve = Bezier.defaultCubic(this);
|
|
curve.points[2].x = 210;
|
|
}
|
|
setMovable(curve.points);
|
|
}
|
|
|
|
draw() {
|
|
resetTransform();
|
|
clear();
|
|
const dim = this.height;
|
|
curve.drawSkeleton();
|
|
curve.drawCurve();
|
|
curve.drawPoints();
|
|
|
|
translate(dim, 0);
|
|
setStroke(`black`);
|
|
line(0,0,0,dim);
|
|
|
|
scale(0.8, 0.9);
|
|
translate(40,20);
|
|
drawAxes(`t`, 0, 1, `X`, 0, dim, dim, dim);
|
|
|
|
let pcount = curve.points.length;
|
|
new Bezier(this, curve.points.map((p,i) => ({
|
|
x: (i/(pcount-1)) * dim,
|
|
y: p.x
|
|
}))).drawCurve();
|
|
|
|
resetTransform();
|
|
translate(2*dim, 0);
|
|
setStroke(`black`);
|
|
line(0,0,0,dim);
|
|
|
|
scale(0.8, 0.9);
|
|
translate(40,20);
|
|
drawAxes(`t`, 0,1, `Y`, 0, dim, dim, dim);
|
|
|
|
new Bezier(this, curve.points.map((p,i) => ({
|
|
x: (i/(pcount-1)) * dim,
|
|
y: p.y
|
|
}))).drawCurve();
|
|
}
|