int imgWidth = 300; int imgHeight = imgWidth * 3/2; float flowerCenterX = imgWidth/2.0; float flowerCenterY = 1/3.0 * imgHeight; float circleSize = 30; float dist = 50; float angle = 2 * PI/5.0; //straight down float petal1X = flowerCenterX; float petal1Y = flowerCenterY + dist; // petal one away from centered down one float petal2DeltaX = dist * sin(angle); float petal2DeltaY = dist * cos(angle); // going counter-clockwise: on the right of petal1 float petal2RX = flowerCenterX + petal2DeltaX; float petal2RY = flowerCenterY + petal2DeltaY; // going clockwise: on the left of petal1 float petal2LX = flowerCenterX - petal2DeltaX; float petal2LY = flowerCenterY + petal2DeltaY; // petal two away from centered down one float petal3DeltaX = dist * sin(2 * angle); float petal3DeltaY = dist * cos(2 * angle); // continue counter-clockwise: now two up on the right of petal1 float petal3RX = flowerCenterX + petal3DeltaX; float petal3RY = flowerCenterY + petal3DeltaY; // continue clockwise: now two up on the left of petal1 float petal3LX = flowerCenterX - petal3DeltaX; float petal3LY = flowerCenterY + petal3DeltaY; size(imgWidth, imgHeight); background(255, 255, 255); noStroke(); fill(245, 190, 190); ellipse(flowerCenterX, flowerCenterY, circleSize, circleSize); fill(250, 250, 140); ellipse(petal1X, petal1Y, 1.4 * circleSize, 1.4 * circleSize); // on the right of petal1 ellipse(petal2RX, petal2RY, 1.4 * circleSize, 1.4 * circleSize); // on the left of petal2 ellipse(petal2LX, petal2LY, 1.4 * circleSize, 1.4 * circleSize); ellipse(petal3RX, petal3RY, 1.4 * circleSize, 1.4 * circleSize); ellipse(petal3LX, petal3LY, 1.4 * circleSize, 1.4 * circleSize); // for debugging //stroke(0, 0, 0); //strokeWeight(10); //point(flowerCenterX, flowerCenterY); //println(flowerCenterX + " " + flowerCenterY);