我想在bezier路径上绘制一系列椭圆,但我正在努力绘制除路径之外的任何东西。我根本不需要它移动。到目前为止,我有:
void setup() {
size(150, 150);
background(255);
smooth();
// Don't show where control points are
noFill();
stroke(0);
beginShape();
vertex(50, 75); // first point
bezierVertex(25, 25, 125, 25, 100, 75);
endShape();
}
如何绘制椭圆以跟随贝塞尔曲线而不是直线?
答案 0 :(得分:4)
为什么你会期望代码画圆圈?它不包含对ellipse()
函数的任何调用。
无论如何,听起来你正在寻找bezierPoint()
功能:
noFill();
bezier(85, 20, 10, 10, 90, 90, 15, 80);
fill(255);
int steps = 10;
for (int i = 0; i <= steps; i++) {
float t = i / float(steps);
float x = bezierPoint(85, 10, 90, 15, t);
float y = bezierPoint(20, 10, 90, 80, t);
ellipse(x, y, 5, 5);
}
与往常一样,the reference可以找到更多信息。