Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

lista rgb hex stringova

[es] :: Java :: lista rgb hex stringova

[ Pregleda: 1462 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mvasicdo
Mladen Vasic
Doboj

Član broj: 104294
Poruke: 226
79.143.169.*



Profil

icon lista rgb hex stringova30.05.2009. u 12:51 - pre 180 meseci
pozdrav svime,

pre neki dan sam postavio pitanje kako da konvertujem int vrijednost u rgb hex string (tema: convert int to rgb) ali sam uvidjeo da bi mogao imati drugih problema tako da sam odustao od ove varijante.
Ovu temu otvaram sa malo drugacijim pitanjem-problemom:
na koji nacim mogu kreirati niz rgb boja, tacnije heksadecimalni niz npr. #0000FF.

tacnije trebam kreirati metodu koja ce mi kreirati niz od n elemenata (recimo n > 100) tipa rgb-hex s'tim da mi se susjedne boje razlikuju, recimo da ne dobijejem 2 susjedne crvene boje koje se razlikuju samo po nijansi. Bilo bi dobro da niz sadrzi samo razlicite boje, naravno koliko je to moguce sobzirom da niz treba da sadrzi vise od 100 elemenata.

Hvala unaprijed...
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: lista rgb hex stringova01.06.2009. u 14:01 - pre 180 meseci
Možda ovako nešto. Ja sam stavio da izađe iz petlje kada dođe do 1000 rezultata. Možeš da u forovima određuješ step pa da recimo imaš manje rezultata. A možeš i random da ih generišeš ali onda moraš da provjeravaš imaš li istih, pošto vidim da ti je to bitno.

Code:

package test;

import java.util.ArrayList;

public class Boje {

    public static void main(String[] args) {

        ArrayList<String> listaBoja = new ArrayList<String>();
        int brojac = 0;
        
        loop:
        for (int r = 0; r <= 255; r++) {
            for (int g = 0; g <= 255; g++) {
                for (int b = 0; b <= 255; b++) {

                    listaBoja.add(convert(r, g, b));
                    if (brojac >= 1000) break loop;
                    brojac++;
                }
            }
        }
        for (String s : listaBoja) {
            System.out.println(s);
        }
    }

    public static String convert(int red, int green, int blue) {
        String redS = Integer.toHexString(red);
        String greenS = Integer.toHexString(green);
        String blueS = Integer.toHexString(blue);
        return ("#" + pad(redS) + pad(greenS) + pad(blueS)).toUpperCase();
    }

    public static String pad(String in) {
        int dodavanje = 2 - in.length();
        StringBuffer buf = new StringBuffer();
        for (int i = 1; i <= dodavanje; i++) {
            buf.append("0");
        }
        buf.append(in);
        return buf.toString();
    }

}
 
Odgovor na temu

bantu

Član broj: 38670
Poruke: 305
89.111.240.*



+27 Profil

icon Re: lista rgb hex stringova01.06.2009. u 14:33 - pre 180 meseci
E, a evo ti i varijanta sa random kreiranjem boja, samo se nadaje da se neće potrefiti dvije iste ili slične boje za redom, ili smisli neki algoritam kako da provjeravaš pa onda navali.
Code:

package test;

import java.util.ArrayList;
import java.util.Random;

public class Boje {

    public static void main(String[] args) {

        ArrayList<String> listaBoja = new ArrayList<String>();        
        Random rnd = new Random();
        
        for (int i = 0; i < 100; i++) {
            listaBoja.add(convert(rnd.nextInt(255), rnd.nextInt(255), rnd.nextInt(255)));
        }
        
        for (String s : listaBoja) {
            System.out.println(s);
        }
    }

    public static String convert(int red, int green, int blue) {
        String redS = Integer.toHexString(red);
        String greenS = Integer.toHexString(green);
        String blueS = Integer.toHexString(blue);
        return ("#" + pad(redS) + pad(greenS) + pad(blueS)).toUpperCase();
    }

    public static String pad(String in) {
        int dodavanje = 2 - in.length();
        StringBuffer buf = new StringBuffer();
        for (int i = 1; i <= dodavanje; i++) {
            buf.append("0");
        }
        buf.append(in);
        return buf.toString();
    }

}
 
Odgovor na temu

[es] :: Java :: lista rgb hex stringova

[ Pregleda: 1462 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.