When using PShape the noFill() method appears to be missing in action. The following code demonstrates a workaround.
Curiously, if I try the P2D renderer, I get no circles at all.
Note also the comment about setStrokeWeight(). Surely this is a bug that should be fixed?
int BLACK = 0;
int WHITE = 255;
int DENSITY = 500;
void setup() {
size(800, 800, FX2D);
background(WHITE);
circler(20, 0);
circler(60, 100);
circler(120, 140);
circler(180, 200);
}
void circler(float r, int c) {
// define a shape
PShape circlet;
// valid primitives: LINE, ELLIPSE, RECT, ARC, TRIANGLE, SPHERE, BOX, QUAD
circlet = createShape(ELLIPSE, 0, 0, r, r);
circlet.setStroke(c);
// No support for this method? Use a trick!
// circlet.noFill();
circlet.setFill( color(WHITE, 0) );
// strangely this method doesn't highlight as legal (blue)
// also: value must be a float or it's ignored
circlet.setStrokeWeight(6.);
// draw
pushMatrix();
translate(width/2, height/2);
shape(circlet, 0, 0);
popMatrix();
}