package collembola;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Shape;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

import javax.imageio.ImageIO;

public class CollemBuffer {
	
	private final int height;
	private final int width;
	private final int nbPlots;
	
	private BufferedImage image;
	
	public CollemBuffer(int height, int width, int nbPlots) {
		this.height = height;
		this.width = width;
		this.nbPlots = nbPlots;
		
		this.image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
		
		Graphics2D g2d = image.createGraphics();
		Random rng = new Random();
		
		int avgHeight = (int) Math.ceil(height / Math.sqrt(nbPlots));
		int avgWidth  = (int) Math.ceil(width / Math.sqrt(nbPlots));
		
		for (int i = 0; i < nbPlots; i++) {
			float randomX = rng.nextFloat() * height;
			float randomY = rng.nextFloat() * width;
			float h = rng.nextFloat() * 3 * avgHeight;
			float w = rng.nextFloat() * 3 * avgWidth;
			
			//Ellipse2D e2d = new Ellipse2D.Double(randomX - height / 8, randomY - height / 8, height / 4, height / 4);
			Shape sh = new Rectangle2D.Float(randomX - w / 2, randomY - h / 2, w, 2 * h);
			g2d.setColor(new Color(rng.nextInt()));
			g2d.fill(sh);
		}
		
		try {
			ImageIO.write(image, "png", new File("test.png"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		System.out.println("toto");
		new CollemBuffer(254, 254, 137);
	}

}
