|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 20.05.2003, 16:24 Titel: Farben |
|
|
Ich habe gerade gelernt, dass ich Farben entweder Hexadezimal oder per RGB(rotanteil,grünanteil,blauanteil) angeben kann.
[leider stimmten die Hexadezimalbeispiele nicht - aber nicht so wild, nun zur Sache:]
Bei RGB geht die Skala jedweils bis 255.
Hexadezimal funktioniert das ja doch rein theoretisch nur bis jeweils 224, da ff 224 ergibt.
Aber RGB(224,224,224) ist noch ein leichtes grau, weil es erst bei jeweils 255 komplett weiß wird.
0x00ffffff ergibt jedoch auch weiß.
-1. Frage
Das bedeutet doch, das bei der Hexadezimalen Schreibweise zwischendrinnen ein paar (kaum bemerkbare) Stufen herausgelassen worden sind, da ff ja 224 = weiß entspricht?
-2. Frage
Man spart dann doch Perfomance, wenn man die hexadezimale Schreibweise verwendet, da diese sofort fertig da steht?
Laut MSDN ist RGB aber eine #define - d. h. das die Werte im RGB durch den Farbwert ersetzt würden - das kann aber doch nicht sein, da man z.B. im Beispiel (schöne Wortwiederholung ) den Wert für Rot mit einer Variable belegt. Höchstens der Compiler ist so schlau und .... |
|
Nach oben |
|
|
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 20.05.2003, 16:30 Titel: |
|
|
f = 15 // eine stellt: werte von 0 - f(15)
ff = 255 // zwei stellen: werte von 0- 255 |
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 20.05.2003, 17:03 Titel: |
|
|
ja, f ist 15, wie schon erwähnt,
das hieße aber doch, dass ff gleich 15*15 ist, was 225 wäre, aber es geht ja von 0 an los -> 224 und NICHT 255.
ff = 0-255 wäre doch unlogisch!
...
Oder irre ich mich etwa? |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 20.05.2003, 17:25 Titel: |
|
|
Das sind 8 Bit pro Farbkomponente: 2^8 = 256 _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
magynhard Super JLI'ler
Anmeldedatum: 26.04.2003 Beiträge: 461 Wohnort: Wild durch die Welt ;-) Medaillen: Keine
|
Verfasst am: 20.05.2003, 18:06 Titel: |
|
|
Ähm hmm ich zähle am besten selbst mal durch
Code: |
0 1 2 3 4 5 6 7 8 9
a b c d e f 10 11 12 13
14 15 16 17 18 19 1a 1b 1c 1e
1d 1f 20 21 22 23 24 25 26 27
28 29 2a 2b 2c 2d 2e 2f 30 31
32 33 34 35 36 37 38 39 3a 3b
3c 3d 3e 3f 40 41 42 43 44 45
46 47 48 49 4a 4b 4c 4d 4e 4f
50 51 52 53 54 55 56 57 58 59
5a 5b 5c 5d 5e 5f 60 61 62 63
64 65 66 67 68 69 6a 6b 6c 6d
6e 6f 70 71 72 73 74 75 76 77
78 79 7a 7b 7c 7d 7e 7f 80 81
82 83 84 85 86 87 88 89 8a 8b
8c 8d 8e 8f 90 91 92 93 94 95
96 97 98 99 9a 9b 9c 9d 9e 9f
a0 a1 a2 a3 a4 a5 a6 a7 a8 a9
aa ab ac ad ae af b0 b1 b2 b3
b4 b5 b6 b7 b8 b9 ba bb bc bd
be bf c0 c1 c2 c3 c4 c5 c6 c7
c8 c9 ca cb cc ce cf d0 d1 d2
d3 d4 d5 d6 d7 d8 d9 da db dc
dd de df e0 e1 e2 e3 e4 e5 e6
e7 e8 e9 ea eb ec ed ee ef f0
f1 f2 f3 f4 f5 f6 f7 f8 f9 fa
fb fc fd fe ff
|
25 zeilen àla 10 zeichen
und
1 zeile àla 5 Zeichen
= 25*10+5 = 255
Mist, da habe ich mich geirrt und das tippen war garnicht so spaßig |
|
Nach oben |
|
|
AFE-GmdG JLI MVP
Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 20.05.2003, 20:20 Titel: |
|
|
Das tippen hättest du dir auch vereinfachen können...
Code: |
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
30 ...
40
50
60
70
80
90
A0
B0
C0
D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF
|
ergibt ein 2 Dimensionales Feld von 16 mal 16 Einträgen: 16 x 16 = 256. (von 0 bis 255 durchgezählt)
Du schriebst 15 x 15 = 225, was ja auch richtig ist, aber 225 ist nich 256 -1... Und bei der 15 (representiert das F) mußt du auch die 0 mitzählen!, also nich 15 x 15 sondern 16 mal 16 - Eben 8 Bit.
Damit ergibt sich eine "Eins zu Eins Darstellung" und es werden keine "Farbwerte" ausgelassen. Das Hexadezimalsystem ist einfach nur ein anderes Zahlensystem, es wird nichts ausgelassen oder so.
Um es ganz genau zu sagen, man kan die 4 Grundrechenoperationen auf jedes Zahlensystem anwenden, also z.B. auch auf das Binäre. Und dort gelten die gleichen Regeln wie in jedem anderem Zahlensystem, man kann also auch im Binären Zahlensystem (oder auch im Hexadezimalen) Schriftlich Addieren oder Subtrahieren usw.
Beispiel:
Code: |
5 0101 5
+ 6 + 0110 + 6
--- ------ ---
11 1011 B
|
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
|
gl_echse JLI'ler
Anmeldedatum: 01.01.2003 Beiträge: 105
Medaillen: Keine
|
Verfasst am: 21.05.2003, 18:55 Titel: |
|
|
es geht bis 255, da 0->255 genau 256 = 1 byte gibt. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|