Farb Indexes
Übersicht

![]() |
LunatixBetreff: Farb Indexes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute.
Ich hab grad in meinem Programm eine Colorpicking Routine erstellt. D.h., ich zeichne meine "Objekte" in je einer Farbe, picke hinterher die Farbe am Mauszeiger nd Vergleiche dann, welches Objekt die Farbe hatte. Code: [AUSKLAPPEN] unsigned int r=0;
unsigned int g=0; unsigned int b=0; while(...){ r++; if (r>255){ r=0; g++; if (g>255){ g=0; b++; } unsigned int nColorIndex = (r+1)*(g+1)*(b+1); } Nun stellt sich mir die Frage: ist "nColorIndex" immer anders? Oder habe ich einen Denkfehler drin, und nColorIndex könnte an einer bestimmten Stelle einen Wert beinhalten, der schon einmal vorhanden war? 255*1*255 = 255*255*1 -> könnte ein solcher Wert erscheinen? Ich bin mir grad etwas unsicher, jedoch würde ich auf Nein tippen. Leider kann man das nicht berechnen, oder doch, aber dies würde selbst mit meinem 4 Kern + 4 Kerne (Virtuell, (Hyperthreading) = 8 gleichzeitige Threads) Laptop, Tage dauern.... 255*255*255 sind schl. 16 Mio Farben, und für jede die 16 Mio durchgehen... Unmöglich (für mich). Deshalb: Was "glaubt" ihr? Hier sind sicherlich Mathematik-Genies, die mir dir Frage benatworten können =) |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich würde sie ja Addieren, etwa so :
Code: [AUSKLAPPEN] index = (r*255*255)+(g*255)+b
mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey, super! Funktioniert einwandfrei =)
Vielen Dank! |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Damit es keine Fehler bei mehr als 255 Objekten gibt: Die Faktoren müssen 256 sein!
-> Code: [AUSKLAPPEN] index = (r*256*256)+(g*256)+b
Ansonsten wären (0,0,255) und (0,1,0) gleich. (R,G,B) mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
Noobody |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn man eh schon die RGB-Werte zu einem Int zusammenfügt, geht es auch so: Code: [AUSKLAPPEN] unsigned int nColorIndex = (r << 16) | (g << 8) | b;
|
||
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun |
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jau, klar ![]() |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group