mirror of
https://github.com/Pomax/BezierInfo-2.git
synced 2025-08-22 16:23:12 +02:00
bsplines
This commit is contained in:
41
docs/chapters/bsplines/uniform.js
Normal file
41
docs/chapters/bsplines/uniform.js
Normal file
@@ -0,0 +1,41 @@
|
||||
let points=[];
|
||||
|
||||
setup() {
|
||||
for (let s=TAU/9, i=s/2; i<TAU; i+=s) {
|
||||
points.push({
|
||||
x: this.width/2 + 100 * Math.cos(i),
|
||||
y: this.height/2 + 100 * Math.sin(i)
|
||||
});
|
||||
}
|
||||
setMovable(points);
|
||||
}
|
||||
|
||||
draw() {
|
||||
clear();
|
||||
|
||||
setStroke(`lightgrey`);
|
||||
drawGrid(20);
|
||||
|
||||
setStroke(`#CC00CC99`);
|
||||
for (let i=0, e=points.length-1, p, n; i<e; i++) {
|
||||
p = points[i];
|
||||
n = points[i+1];
|
||||
line(p.x, p.y, n.x, n.y);
|
||||
}
|
||||
|
||||
setColor(`black`);
|
||||
points.forEach(p => circle(p.x, p.y, 3));
|
||||
|
||||
this.drawSplineData();
|
||||
}
|
||||
|
||||
drawSplineData() {
|
||||
const spline = new BSpline(this, points);
|
||||
spline.formKnots(!!this.parameters.open);
|
||||
|
||||
noFill();
|
||||
setStroke(`black`);
|
||||
start();
|
||||
spline.getLUT((points.length - 3) * 20).forEach(p => vertex(p.x, p.y));
|
||||
end();
|
||||
}
|
Reference in New Issue
Block a user