// draw polygons using lines
void setup() { // all sketch setup goes here
size(400, 400);
smooth();
background(255);
} // setup()
void draw() {
} // draw()
void mousePressed() {
drawPolygon(mouseX, mouseY, random(20, 80), int(random(3, 12)));
} // mousePressed()
void drawPolygon(float cx, float cy, float sz, int nSides) {
// draw a hexagon centered at cx, cy
float x1, y1, x2, y2;
float radius = sz/2;
float theta = 0.0;
float delta = 360.0/nSides;
point(cx, cy);
// ellipse(cx, cy, sz, sz);
// compute x1, y1
x1 = cx + radius;
y1 = cy;
for (int i = 0; i < nSides; i++) {
theta = theta + delta;
x2 = cx + radius * cos(radians(theta));
y2 = cy - radius * sin(radians(theta));
line(x1, y1, x2, y2);
// copy x2, y2 into x1, y1
x1 = x2;
y1 = y2;
}
} // drawPolygon