Ikaru
16-05-2003, 14:14
Hallo Leute,
Ich hab eine Frag zu meinem Beispiel,
Kurzbeschreibung
Ein Farbwert im RGB-Farbwürfel (Rot, Grün, Blau je 256 Stufen) soll auf einen Farbwürfel mit 147 Farbwerten abgebildet werden. Dazu ist eine Bewertung der 8 Ecken des Teilquaders, in dem der Farbwert liegt, auszugeben.
Was ist ein Teilquader ? hehe
Aufgabenstellung:
Lesen Sie drei Farbwerte ein, die den Helligkeiten der Komponenten Rot, Grün und Blau im RGB-Farbraum entsprechen (bekannt als "True Color"). Stellen Sie sich den RGB-Farbraum als dreidimensionalen Würfel vor (jeweils 0..255, 0..255, 0..255), wobei jede Koordinatenachse einer der Farbkomponenten entspricht.
Ihr Programm soll die eingelesen Farbwerte umwandeln, wobei das Reduktionverhältnis der Helligkeiten 256:256:256 -> 7:7:3 (Rot:Grün:Blau) sein soll. Nach der Umwandlung ergibt sich also ein Farbraum von (0..6,0..6,0..2).
Um eine Farbe aus dem Farbraum (0..255, 0.255, 0..255) in einen kleineren Farbraum zu konvertieren, muß der RGB-Farbwürfel in Quader unterteilt werden. Die Seitenlängen der Teilquader erhalten Sie, indem Sie auf der Rot- und auf der Grün-Achse 255/7 berechnen und auf der Blau-Achse 255/3. Wenn sich für die resultierenden Eckpunkte der Teilquader Koordinaten mit Nachkommastellen ergeben (das passiert sicher bei 255/7), müssen Sie die Koordinaten dieser Eckpunkte auf ganze Zahlen runden.
Bei der Umwandlung wird festgestellt, in welchem Teilquader der eingelesene Farbwert liegt. Wenn der Punkt genau auf der Grenze von Quadern liegt, wählen Sie jenen Teilquader, dessen Koordinaten am kleinsten sind.
Als Ausgabe sollen Sie für jede der 8 Ecken dieses Teilquaders den normierten Abstand liefern, den dieser Eckpunkt (der einer darstellbaren Farbe entspricht) von dem tatsächlichen Punkt hat. Der normierte Abstand ist jener Abstand der, wenn man alle 8 Abstände aufsummiert, 1 ergibt.
Also ich habe das so verstanden:
Man macht zu erst einen Farbwuerfel mit den angegeben farben rot gelb blau und wenn jemand Werte fuer R, G u. B eingibt, ergibt sich ein Punkt im Wuerfel. Dann sollen die Abstaende der 8 ecken des Wuerfels zu dem Punkt berechnet werden. (das waere ja nicht so schwer).
Aber warum soll ich den RGB-Farbwürfel in Quader einteilen ? Und wie solle ich mir das vorstellen ? :confused:
Ich hab eine Frag zu meinem Beispiel,
Kurzbeschreibung
Ein Farbwert im RGB-Farbwürfel (Rot, Grün, Blau je 256 Stufen) soll auf einen Farbwürfel mit 147 Farbwerten abgebildet werden. Dazu ist eine Bewertung der 8 Ecken des Teilquaders, in dem der Farbwert liegt, auszugeben.
Was ist ein Teilquader ? hehe
Aufgabenstellung:
Lesen Sie drei Farbwerte ein, die den Helligkeiten der Komponenten Rot, Grün und Blau im RGB-Farbraum entsprechen (bekannt als "True Color"). Stellen Sie sich den RGB-Farbraum als dreidimensionalen Würfel vor (jeweils 0..255, 0..255, 0..255), wobei jede Koordinatenachse einer der Farbkomponenten entspricht.
Ihr Programm soll die eingelesen Farbwerte umwandeln, wobei das Reduktionverhältnis der Helligkeiten 256:256:256 -> 7:7:3 (Rot:Grün:Blau) sein soll. Nach der Umwandlung ergibt sich also ein Farbraum von (0..6,0..6,0..2).
Um eine Farbe aus dem Farbraum (0..255, 0.255, 0..255) in einen kleineren Farbraum zu konvertieren, muß der RGB-Farbwürfel in Quader unterteilt werden. Die Seitenlängen der Teilquader erhalten Sie, indem Sie auf der Rot- und auf der Grün-Achse 255/7 berechnen und auf der Blau-Achse 255/3. Wenn sich für die resultierenden Eckpunkte der Teilquader Koordinaten mit Nachkommastellen ergeben (das passiert sicher bei 255/7), müssen Sie die Koordinaten dieser Eckpunkte auf ganze Zahlen runden.
Bei der Umwandlung wird festgestellt, in welchem Teilquader der eingelesene Farbwert liegt. Wenn der Punkt genau auf der Grenze von Quadern liegt, wählen Sie jenen Teilquader, dessen Koordinaten am kleinsten sind.
Als Ausgabe sollen Sie für jede der 8 Ecken dieses Teilquaders den normierten Abstand liefern, den dieser Eckpunkt (der einer darstellbaren Farbe entspricht) von dem tatsächlichen Punkt hat. Der normierte Abstand ist jener Abstand der, wenn man alle 8 Abstände aufsummiert, 1 ergibt.
Also ich habe das so verstanden:
Man macht zu erst einen Farbwuerfel mit den angegeben farben rot gelb blau und wenn jemand Werte fuer R, G u. B eingibt, ergibt sich ein Punkt im Wuerfel. Dann sollen die Abstaende der 8 ecken des Wuerfels zu dem Punkt berechnet werden. (das waere ja nicht so schwer).
Aber warum soll ich den RGB-Farbwürfel in Quader einteilen ? Und wie solle ich mir das vorstellen ? :confused: