Farb Indexes
Übersicht Sonstiges Smalltalk
LunatixBetreff: Farb Indexes |
So, Mai 01, 2011 17:53 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 |
So, Mai 01, 2011 18:10 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 |
So, Mai 01, 2011 18:38 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 |
So, Mai 01, 2011 18:55 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 |
So, Mai 01, 2011 18:57 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 |
So, Mai 01, 2011 23:30 Antworten mit Zitat |
|
---|---|---|
Jau, klar Mir gings jedoch nur ums Prinzip, das war so Verständlicher =) | ||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
Übersicht Sonstiges Smalltalk
Powered by phpBB © 2001 - 2006, phpBB Group