Skocz do zawartości

[Help]Zmienne c1,c2,c3,c4,


Issen

Rekomendowane odpowiedzi

Wiecie może w jaki sposób jest kodowany kolor w funkcji

draw_text_color(x,y,string,c1,c2,c3,c4,alpha)

kolor przedstawia:

c1 - lewy gorny

c2 - prawy gorny

c3 - prawy dolny

c4 - lewy dolny

a teraz w jakiej zmiennej mieszcza sie te kolory

probowalem wstawic hex i tez nie dziala, wpisuje 1000 i jest kolor czerwony. Troche sie zmieszalem czy ktokolwiek wie jak policzyc kolor? naprzykład pomaranczowy: #FFA000

 

http://www.kurshtml.boo.pl/html/kolory.html

Odnośnik do komentarza
Udostępnij na innych stronach

właśnie to nie sa składowe bo jak by tak było to po problemie. Zreszta składowe to 3 kolory a nie 4!!!!!!!!!!!!!!!!!

 

W takim bądź razie w których zmiennych sie ustawia składowe? Zresztą z tego co wiem GM nie obsługuje jeszcze gradientów, to ja nie wiem skąd to wziąłeś... ;/

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Gradienty są w GM. Kolor liczony jest tak:

kolor = czerwony + zielony * 255 + niebieski * 255 * 255;

Czyli podstawiajac 1000 masz kolor: 235 + 3 * 255 + 0 czyli szesnastkowo: EB0300

 

Ale zeby sie nie przemeczac, to od tego jest funkcja zwracajaca kolor:

kolor = make_rgb_color( red, green, blue ); //podstawiasz liczby od 0 do 255.

 

Powyzsza forma to odwzorowanie koloru w formie liczby dziesietnej, oczywiscie mozesz nie uzywac funkcji make_rgb_color tylko wprost zapisu szesnastkowego, poniewaz GM obsluguje takowy, ale z prefiksem dolara:

kolor = $FFA00;

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Nie. Dobrze napisałem, zapis szesnastkowy (a nie funkcja) działa dobrze. Tylko mała uwaga, której się nie przyjrzałem wcześniej i popełniłem błąd:

 

#EB0300 to html'owy zapis 3 liczb 1-bajtowych

 

$EB0300 to zapis GM'owy ale nie 3 ale 1 liczby (będę strzelał, bo nie jestem pewien co tam Mark Overmars zaimplementował) 4 bajtowej. Nie ma w systemach liczb 3 bajtowych (tylko potęgi liczby 2), więc po stronie GM'a jest to tak naprawdę liczba $00EB0300, ponieważ następuje dopełnienie od lewej strony.

 

Ale dość już o bajtach, wróćmy do sedna. Tak jak dziesiętnie w liczbach arabskich kolejne cyfry wraz ze wzrostem liczby są dopisywane z lewej strony: 10, 210, 5410 itd. tak samo jest heksadecymalnie (szesnastkowo) 93, FF93, A6FF93 itd. Krótko mówiąc jeżeli $EB0300 to jedna liczba, a nie trzy zapisane kolejno po sobie, a kolor czerwony jest najmniejszą składową (bo nie mnożona przez 255) liczby koloru, to trzeba ją zapisać ... na odwrót, gdyż kolor czerwony powinien znajdować się po prawej stronie:

 

$0003EB - nie RGB a BGR. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...