You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1001 B
Java

package deepZoom.schedulers;
/**
* @author Zom-B
* @since 1.0
* @date 2009/05/03
*/
public class FlowerScheduler extends Scheduler {
private int petals;
private double petalSize;
public FlowerScheduler(int petals, double petalSize) {
this.petals = petals;
this.petalSize = 4 / petalSize + 1;
}
@Override
protected void initImpl() {
super.clear();
for (int i = 0; i < numLayers; i++) {
for (int y = 0; y < height; y++) {
double dy = y - (height - 0.875) * 0.5;
for (int x = 0; x < width; x++) {
double dx = x - (width - 0.75) * 0.5;
double a = StrictMath.atan2(dy, -dx) * petals;
double r = StrictMath.sqrt(dx * dx + dy * dy);
dx = r * (StrictMath.cos(a) + petalSize);
add(new PriorityPoint(i, x, y, dx));
}
}
}
}
}