如何填充曲线内的颜色?

How to fill the color inside the curve?

我想用函数curve(...)创建一个有一些封闭区域的图片,但我不知道如何填充里面的颜色。

有没有什么方法可以在头部和body里面填充?

void setup(){
  size(800,800);
}

void draw(){
  background(170,243,255);
  fish();
}

void fish(){
  translate(width/2, height/2);//mouseX, mouseY

  //eye
  fill(231,255,188);
  stroke(0);
  ellipse(-100,-100,50,45);
  fill(0);
  ellipse(-100,-100,30,28);

  //head
  noFill();
  strokeWeight(2);
  stroke(157,88,255);
  curve(-400,-100,-200,-200,50,-150,150,50);
  curve(-100,-400,-200,-200,-150,50,0,100);
  curve(-300,50,-150,50,50,-150,50,-300);

  //body
  curve(-200,-350,50,-150,250,250,600,300);
  curve(-200,-200,-150,50,250,250,500,250);
}

您可以使用 curveVertex() 函数。

这并不完全符合您的要求,但您可以试用它直到它符合要求:

  //body
  fill(255, 0, 0);
  beginShape();
  curveVertex(-200, -350);
  curveVertex(50, -150);
  curveVertex(250, 250);
  curveVertex(-150, 50);
  curveVertex(-200, -200);
  endShape();

请注意,您可以有多个像这样的块来填充具有相同颜色的不同部分。