ERLEDIGT
NEIN
NEIN
ANTWORTEN
29
29
ZUGRIFFE
479
479
EMPFEHLEN
-
1) hab ich den Beitrag vier Mal lesen müssen, bis ich ihn verstanden habe.
2) Wenn du schon auf Ähnlichkeit prüfst musst du nicht auch noch auf Gleichheit prüfen. Die ist in der Ähnlichkeit schon drin.
3) Ohne Code können wir nur ratenNetiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
public void paintComponent(Graphics gr) {
super.paintComponent(gr);
farbe = getNewColor();
while ((semiColorIsSavedToList(farbe) || liste.contains(farbe))){
farbe = getNewColor();
}
liste.add(farbe);
g2d.setColor(farbe);
g2d.drawString(" neue Farbe ",250 , 20);
g2d.fillOval(250, 20, 200, 200);
vorfarbe = farbe;
setOldColor(farbe);
}
-
Hallo Fabio. ich bedanke mich für deine Hilfe
hier ist etwas code
beste Gruß
Ottens
public void paintcomponent(Gra g) {
Graphics2D g2 = (Graphics2D) g;
far = getNewColor();
while ((semiColorIsSavedToList(far)){
far = getNewColor();
}
list.add(far);
g2d.setColor(far);
g2d.drawString(" neue Far ",250 , 20);
g2d.fillOval(250, 20, 200, 200);
}
public boolean semiColorIsSavedToList(Color farbe) {
for(int index = 0 ; index < liste.size() -1; index++ ){
Color pool = liste.get(index);
boolean erg =semiColorExist(farbe, pool);
return erg;
}
public boolean semiColorExist(Color farbe, Color pool){
int r = Math.abs(farbe.getRed() - pool.getRed());
int g = Math.abs(farbe.getGreen() - pool.getGreen());
int b = Math.abs(farbe.getBlue() - pool.getBlue());
if( r <= 50 || g <= 50 || b <= 50){
return true;
}
return false;
}
public Color getNewColor(){
Random rnd = new Random();
int rRnd = rnd.nextInt(256);
int gRnd = rnd.nextInt(256);
int bRnd = rnd.nextInt(256);
while((rRnd > 210) || (Math.abs(rRnd - vorfarbe.getRed())< 50)){
rRnd = rnd.nextInt(256);
}
while((gRnd > 200) || (Math.abs(gRnd - vorfarbe.getGreen())< 50)){
gRnd = rnd.nextInt(256);
}
while(bRnd < 150 || (Math.abs(bRnd - vorfarbe.getBlue())< 50)){
bRnd = rnd.nextInt(256);
}
Color farbe = new Color(rRnd,gRnd,bRnd);
return farbe;
}Geändert von ottens (01.09.11 um 15:50 Uhr)
-
01.09.11 12:09 #19
- Registriert seit
- Jun 2009
- Beiträge
- 870
@ottens: deinen Code kann man besser lesen, wenn du ihn in die Code-Tags packst (siehe meine Signatur)
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Hallo Fabio,
du meinst System.out.println(" ein String "); ja das mache ich auch aber viele sagen mir
ich soll das nicht benutzen, es ist kein gutes Style meinen viele aber mir auch lieber
zu benutzen.
Grüße
Ottens
-
Nein, er meint, dass du vor den gesamten Quellcode hier im Forum [java] schreiben sollst, und danach [/java].
Übrigens hat das nicht Fabio geschrieben, sondern genodeftest.
Und was ist an einem println schlechter Stil?Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
Hallo an euch alle also ich bin seit ein oder 2 Tagen hier also bin neu hier daher.
mit System.out.println(); viele sagen soll man nicht einsetzen
wenn man programmiert .
es gibt alternative, die man benutzen kann.
danke an allen.
grüße
-
01.09.11 15:01 #23
- Registriert seit
- Jun 2009
- Beiträge
- 870
@ottens: Kein Problem. Ich habe gemeint, dass du vor deinen Code [java] schreiben sollst, und ganz ans Ende von deinem Code [/java]. Das sieht dann mit deinem Code von oben so aus:
Der Vorteil ist, dass die Syntax des Java-Codes farblich hervorgehoben wird. Das verbessert die Lesbarkeit. Außerdem ist dann offensichtlich, wo der Code beginnt/endet.Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
public void paintComponent(Graphics gr) { super.paintComponent(gr); Graphics2D g2d = (Graphics2D) gr; farbe = getNewColor(); // wenn die fARBE ODER eine ähnliche SCON DA IST, dann neue Farbe erstellen while ((semiColorIsSavedToList(farbe) || liste.contains(farbe))){ farbe = getNewColor(); } liste.add(farbe); g2d.setColor(farbe); g2d.drawString(" neue Farbe ",250 , 20); g2d.fillOval(250, 20, 200, 200); } public boolean semiColorIsSavedToList(Color farbe) { for(int index = 0 ; index < liste.size() -1; index++ ){ Color pool = liste.get(index); boolean erg =semiColorExist(farbe, pool); return erg; } public boolean semiColorExist(Color farbe, Color pool){ int r = Math.abs(farbe.getRed() - pool.getRed()); int g = Math.abs(farbe.getGreen() - pool.getGreen()); int b = Math.abs(farbe.getBlue() - pool.getBlue()); // dieferenz zwiscjen den Farben >= 50 if( r <= 50 || g <= 50 || b <= 50){ return true; } return false; } public Color getNewColor(){ Random rnd = new Random(); int rRnd = rnd.nextInt(256); int gRnd = rnd.nextInt(256); int bRnd = rnd.nextInt(256); // keine helle Farben while((rRnd > 210) || (Math.abs(rRnd - vorfarbe.getRed())< 50)){ rRnd = rnd.nextInt(256); } while((gRnd > 200) || (Math.abs(gRnd - vorfarbe.getGreen())< 50)){ gRnd = rnd.nextInt(256); } while(bRnd < 150 || (Math.abs(bRnd - vorfarbe.getBlue())< 50)){ bRnd = rnd.nextInt(256); } Color farbe = new Color(rRnd,gRnd,bRnd); return farbe; }
Oder kurz (so wie es in meiner Signatur steht) :
Aus
wird dannCode :1
[java]System.out.println("Hallo");[/java]
Code java:1
System.out.println("Hallo");
Geändert von genodeftest (01.09.11 um 15:03 Uhr)
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
danke genodeftest für die Mühe es ist echt lieb, aber hat jemand für mein Problem eine
Lösung vielleicht ****
Grüße
Ottens
-
Wenn du den Bitten jetzt auch noch nachkommen würdest, wäre schon.
Vor allem die Einrückungen...
Bearbeite deinen Beitrag oben. Ist doch wirklich nicht viel zu tun.
java vorne und /java hinten und den Code nocheinmal von der IDE reinkopieren.
Dann wird das viel einfacher zu lesen.
Keiner hier hat Lust dreimal so lange herumzurätseln, als nötig wäre.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
01.09.11 15:14 #26
Also wenn du die Linientypen nicht noch mit verändern kannst, weil die schon vergeben sind oder sonstiges, dann wird es wohl eher schwierig. Du brauchst zwar nur >200 Farben, aber das Problem liegt beim menschlichen Auge. Wir können numal die Farben nur schwer auseinander halten, sobald sie fast den selben Farbtypen haben. Von daher bin ich fast der Meinung, dass es für dein Problem keine Lösung geben wird.
Außer ich habe irgendetwas übersehen.
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
ok Fabio danke dir es war sehr nett mit euch zu kommunitzieren.
LG
Ottens
-
01.09.11 19:09 #28
- Registriert seit
- Jun 2009
- Beiträge
- 870
Doch, das muss sich lösen lassen.
Ist die Anzahl der Farben, die du brauchst begrenzt?
Ich hätte 2 Lösungswege:
1. Du erzeugst ein reduziertes Farbspektrum, das für R, G und B jeweils nur z.B. 8 verschiedene Werte hat: 0, 31, 63, 95, 127, 159, 171, 203, 235, 255 (ein Wert fällt wegen der Hintergrundfarbe weg). Damit hättest du 8^3=512 Farben zur Verfügung. Wenn du eine neue Farbe erzeugst, brauchst du nur eine Zufallszahl von 0 bis (einschließlich) 7 zu erzeugen und multiplizierst diese mit dem Faktor 32, dies wiederholst du für jede Komponente (R, G, B). Dann prüfst du, ob genau diese Farbe bereits existiert. Wenn ja, wiederholst du den letzten Schritt, wenn nein hast du deine Farbe.
2. Wenn du eine Farbe erzeugst, prüfst du ob sie "weit genug von allen anderen Farben entfernt ist", d.h. du überprüfst für jede Komponente und jede Farbe einzeln, ob die Differenz der jeweiligen Farbwerte unterhalb eines Grenzwertes liegt, z.B. so:
(ungetesteter Code)Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
public Color generateRandomColor(List<Color> allColors, int mindestAbstand) throws Exception { Color newColor = null; for (int i = 0; i < 10000; i++) { final Color possibleNewColor = new Color( (int) (Math.random() * 0x01000000)); boolean found = false; for (final Color c : allColors) { if (Math.abs(c.getBlue() - possibleNewColor.getBlue()) < mindestAbstand || Math.abs(c.getRed() - possibleNewColor.getRed()) < mindestAbstand || Math.abs(c.getGreen() - possibleNewColor.getGreen()) < mindestAbstand) { found = false; break; // Farbe liegt zu nah an anderer Farbe! } else { found = true; } } if (found) { newColor = possibleNewColor; break;// fertig, verlasse äußere Schleife } } if (newColor == null) { throw new Exception( "Keine Farbe generiert, bitte kleinere Grenze wählen!"); } return newColor; }
Zur ersten Idee fällt mir auch gleich noch was ein, aber ich geh erst essen...Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
Das hatten wir schon.
Und seitdem warte ich darauf, dass ottens versteht, was Codetags sind.
@ottens: Falls einfach [java]...[/java] nicht verständlich ist findest du in meiner Sig einen Link zu einer ausführlichen Erklärung.Netiquette (vA §15) und Nutzungsregeln (vA §4.8) einhalten! Programmcode in Codetags/Codeboxen.
Sehr gute Beiträge bitte Bewerten (Stern darunter oder "Danke").
"Funktioniert nicht" ist zu ungenau! Code, Fehlermeldungen, Verhalten des Programms, ...?
-
01.09.11 20:26 #30
- Registriert seit
- Jun 2009
- Beiträge
- 870
stimmt. sorry, hab ich überlesen.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
Ähnliche Themen
-
Clone7Tracer verschiedene Farben
Von Freakt im Forum Cinema 4DAntworten: 1Letzter Beitrag: 04.10.10, 17:29 -
Verschiedene Farben
Von slivap im Forum PhotoshopAntworten: 5Letzter Beitrag: 19.07.09, 17:38 -
Border verschiedene Farben
Von Raven280438 im Forum CSSAntworten: 1Letzter Beitrag: 05.11.07, 12:32 -
2 Verschiedene Farben im AS
Von DooMoOo im Forum Flash PlattformAntworten: 2Letzter Beitrag: 13.01.06, 13:11 -
Verschiedene Farben im C4D
Von Pr0N4P im Forum Cinema 4DAntworten: 6Letzter Beitrag: 02.05.05, 16:53






Zitieren
Login





