Hi Leute,
hat jemand eine Idee, wie ich folgenden Algorithmus aufbauen kann:
Berechnung von x- und y-Koordinaten, für 100x100 px große Rechtecke, die einen minimalen Abstand von 10 px zueinander haben sollten. Die Koordinaten müssen von der oberen linken Ecke gerechnet werden. Die Fläche selbst ist 800x800px groß.
Ziel ist: Die Rechtecke sollen möglichst zufällig angeordnet werden.
Ich habe das ganze jetzt mit null-Layout und Buttons getestet. Die spätere Implementierung ist aber unwichtig.(Wen es interessiert: Das ganze ist für die Berechnung von Positionen von den Türchen eines Adventskalenders.)
Mein Ansatz war jetzt folgender:
Wäre nett wenn ihr mir für die Berechnung der ? auf die Sprünge helfen könntet. Vielen Dank!
hat jemand eine Idee, wie ich folgenden Algorithmus aufbauen kann:
Berechnung von x- und y-Koordinaten, für 100x100 px große Rechtecke, die einen minimalen Abstand von 10 px zueinander haben sollten. Die Koordinaten müssen von der oberen linken Ecke gerechnet werden. Die Fläche selbst ist 800x800px groß.
Ziel ist: Die Rechtecke sollen möglichst zufällig angeordnet werden.
Ich habe das ganze jetzt mit null-Layout und Buttons getestet. Die spätere Implementierung ist aber unwichtig.(Wen es interessiert: Das ganze ist für die Berechnung von Positionen von den Türchen eines Adventskalenders.)
Mein Ansatz war jetzt folgender:
Java:
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(800, 800);
JButton button;
int posx = 0;
int posy = 0;
for (int i = 0; i < 5; i++) {
posy += 110;
posx = 0;
for (int j = 0; j < 5; j++) {
posx += 110;
frame.add(button = new JButton());
int randx = ?;
int randy = ?;
button.setBounds((posx + randx), (posy + randy), 100, 100);
button.setText((posx + randx) + "," + (posy + randy));
System.out.println("x: " + (posx + randx) + "y: " + (posy + randy));
}
}
frame.setVisible(true);
}
Wäre nett wenn ihr mir für die Berechnung der ? auf die Sprünge helfen könntet. Vielen Dank!