tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
29
ZUGRIFFE
479
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    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 raten
     
    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, ...?

  2. #17
    ottens ottens ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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);
    }
     

  3. #18
    ottens ottens ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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)
     

  4. #19
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  5. #20
    ottens ottens ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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
     

  6. #21
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    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, ...?

  7. #22
    ottens ottens ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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
     

  8. #23
    genodeftest genodeftest ist offline Mitglied Brillant
    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:

    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;
     }
    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.

    Oder kurz (so wie es in meiner Signatur steht) :
    Aus
    Code :
    1
    
    [java]System.out.println("Hallo");[/java]
    wird dann
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  9. #24
    ottens ottens ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    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
     

  10. #25
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    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, ...?

  11. #26
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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ß

    Fabio
     
    Bitte 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.

  12. #27
    ottens ottens ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    13
    ok Fabio danke dir es war sehr nett mit euch zu kommunitzieren.


    LG

    Ottens
     

  13. #28
    genodeftest genodeftest ist offline Mitglied Brillant
    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:
    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;
        }
    (ungetesteter Code)

    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  14. #29
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.503
    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, ...?

  15. #30
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

Ähnliche Themen

  1. Clone7Tracer verschiedene Farben
    Von Freakt im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 04.10.10, 17:29
  2. Verschiedene Farben
    Von slivap im Forum Photoshop
    Antworten: 5
    Letzter Beitrag: 19.07.09, 17:38
  3. Border verschiedene Farben
    Von Raven280438 im Forum CSS
    Antworten: 1
    Letzter Beitrag: 05.11.07, 12:32
  4. 2 Verschiedene Farben im AS
    Von DooMoOo im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 13.01.06, 13:11
  5. Verschiedene Farben im C4D
    Von Pr0N4P im Forum Cinema 4D
    Antworten: 6
    Letzter Beitrag: 02.05.05, 16:53