Ich muss Farben in Swing GUI nach dem Zufallsprinzip generieren, aber das Problem ist, dass ich will, dass sie nur hell sind.Wie erzeugt man zufällig helle Farbe?
Antwort
Verwenden Sie die statische Color-Klasse-Methode getHSBColor(...)
, und stellen Sie sicher, dass der dritte Parameter, der die Helligkeit darstellt, für Sie ausreichend hoch ist, vielleicht> 0.8f (aber < 1.0f).
Zum Beispiel verwendet der Code unter der oben beschriebenen Methode eine zufällige helle Farbe zu finden:
float h = random.nextFloat();
float s = random.nextFloat();
float b = MIN_BRIGHTNESS + ((1f - MIN_BRIGHTNESS) * random.nextFloat());
Color c = Color.getHSBColor(h, s, b);
eine Zufallsvariable namens zufällig und einen MIN_BRIGHTNESS Wert von 0,8 f:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.*;
public class RandomBrightColors extends JPanel {
private static final int PREF_W = 500;
private static final int PREF_H = PREF_W;
private static final int RECT_W = 30;
private static final int RECT_H = RECT_W;
private static final float MIN_BRIGHTNESS = 0.8f;
private Random random = new Random();
public RandomBrightColors() {
setBackground(Color.BLACK);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
for (int i = 0; i < 100; i++) {
g.setColor(createRandomBrightColor());
int x = random.nextInt(getWidth() - RECT_W);
int y = random.nextInt(getHeight() - RECT_H);
g.fillRect(x, y, RECT_W, RECT_H);
}
}
private Color createRandomBrightColor() {
float h = random.nextFloat();
float s = random.nextFloat();
float b = MIN_BRIGHTNESS + ((1f - MIN_BRIGHTNESS) * random.nextFloat());
Color c = Color.getHSBColor(h, s, b);
return c;
}
@Override
public Dimension getPreferredSize() {
if (isPreferredSizeSet()) {
return super.getPreferredSize();
}
return new Dimension(PREF_W, PREF_H);
}
private static void createAndShowGui() {
RandomBrightColors mainPanel = new RandomBrightColors();
JFrame frame = new JFrame("RandomBrightColors");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
createAndShowGui();
});
}
}
bearbeiten: oder wenn die Farben vollständig gesättigt sein sollen, ändern Sie den Sättigungsparameter in 1f:
Beachten Sie auch, dass dies mit einer 3-stelligen int-RGB-Farbe erfolgen kann. Beachten Sie jedoch, dass ein Parameter nahe bei 255 aber nicht größer als 255 sein sollte, einer nahe aber nicht unter 0 sein sollte und der andere sein kann zufällig alles zwischen 0 und 255.
- 1. Wie bekomme ich eine helle weiße Farbe in Ncurses?
- 2. Wie man eine lange Zahl zufällig in clojure erzeugt
- 3. Wie man Rohre unterschiedlicher Größe zerstört und zufällig erzeugt?
- 4. Sql Compact erzeugt zufällig AccessViolationException
- 5. Wie man Methodensignatur erzeugt?
- 6. Wie man Permutationen erzeugt?
- 7. Wie man eine GUID in VBScript erzeugt?
- 8. Wie erzeugt man zufällige Farben in Matplotlib?
- 9. Wie man eine Gitarrennote erzeugt
- 10. wie man Farbe einstellt
- 11. Wie generiert man zufällig ANSI-Farben in Bash/Perl?
- 12. Beispiel erzeugt numpy Array mit zufällig platzierten NaNs
- 13. NSSet wie man Objekt zufällig extrahiert?
- 14. Wie platziert man Anzeigen zufällig zwischen RecyclerView?
- 15. wie man gekippten Text wie diesen erzeugt -
- 16. Wie man `DOS/Unix` erzeugt Wie GUI
- 17. Wie ändert man die Hintergrundfarbe zufällig in HTML mit JavaScript?
- 18. Wie erkennt man kollidieren mit zufällig erzeugten Sprite AndEngine?
- 19. Wie man eine Dateigruppe "dynamisch" erzeugt?
- 20. Wie man Javadoc von der Befehlszeile erzeugt
- 21. Wie man verbindliche Proxies dynamisch erzeugt?
- 22. Python: Wie man eine zufällige Telefonnummer erzeugt?
- 23. Wie erzeugt man Flammengraphen mit PHP?
- 24. Wie man Daten von Normalverteilung erzeugt
- 25. Wie man JSon in Gatling dynamisch erzeugt?
- 26. Wie man Codebeispiele von einer Grammatik erzeugt?
- 27. Delphi 7: Wie man Klassenhierarchie erzeugt?
- 28. Wie man Maschinencode mit llvm erzeugt
- 29. Wie man saubere URLs mit mod_rewrite erzeugt
- 30. Wie man mapping.txt mit Eclipse erzeugt?
Ich denke, dieser Beitrag kann Ihnen helfen. http://stackoverflow.com/questions/596216/formula-to-determine-brightness-of-rgb-color –
Einige [Beispiele] (http://stackoverflow.com/search?tab=votes&q=user%3a230513%20Color .getHSBColor). – trashgod