Kostka RGB

0

Witam.
Muszę napisać program, który m.in wyświetli mi kostkę RGB ( prawdopodobnie malowanie pixel po pixelu ).
Kostka ta ma wyglądać tak:
user image

Czy macie jakieś pomysły w jaki sposób to zrobić?

Za wszelaką pomoc byłbym niezmiernie wdzięczny.

Pozdrawiam,
Adam.

0

kolory na wierzchołkach znasz zapewne =]

( N i M są równe jeśli masz kostkę )

Ściana:
AB
CD

(poziome)
V1 - Gradient od koloru A do koloru B o długości N pikseli
V2 - Gradient od koloru C do koloru D o długości N pikseli

(pionowe)
Hx - N gradientów od koloru V1[n] do koloru V2[n] o długości M pikseli

0

hmm, szrzecze powiem, że nie bardzo rozumiem to, co napisałeś ;)
W każdym razie dziękuję za odezw :)

Czy mógłbyś mi troche rozjaśnić to, co podałeś?
Może jakimś pseudo-algorytmem..?

0

Wytnij sześcian z obrazka i wstaw go do programu. :)

0

Niestety, takie coś nie przejdzie, a szkoda :p

btw..
W tym projekcie mam też za zadanie zrobić konwersje pola z rgb na cmyk.
Zrobiłem 3 suwaki odpowiadające kolorom R G i B. Teraz kolej na CMYK.
I takie pytanie. Jak uzależnić jeden suwak od drugiego?
Tzn kiedy przesunę jakiś suwak na CMYK'u aby przesuwały się na RGB?

Podam gg, w razie gdyby ktoś chciałby mi to wytłumaczyć : 3399498 :)

0
function Gradient(a, b: TColor; x,l: Byte): TColor;
  begin
    Result := RGB(
    (GetRValue(a)*x+GetRValue(b)*(l-x)) div l,
    (GetGValue(a)*x+GetGValue(b)*(l-x)) div l,
    (GetBValue(a)*x+GetBValue(b)*(l-x)) div l);
  end;

wyliczenie koloru pikselka numer X w gradiencie od A do B
RGB składa kolor do kupy z trzech składowych
Get..Value zwraca odpowiednią składową koloru ( w RGB )
l to długość gradienta - div to dzielenie całkowite, bo RGB() składa kolor z liczb całkowitych =]

a konwersja:
http://www.delphi3000.com/articles/article_306.asp?SK=
http://delphi.about.com/od/delphitips2007/qt/rgb_cmyk.htm
http://www.velocityreviews.com/forums/t127265-rgb-to-cmyk.html

http://web.forret.com/tools/color.asp =]

0

Ke ke ke, konwersja jest gotowa w javulcu =]

ColorSpace cmyk = new ColorSpace(ColorSpace.TYPE_CMYK, 4);
float[] values = cmyk.fromRGB(rgbFloatArray);

1 użytkowników online, w tym zalogowanych: 0, gości: 1