farbverlauf mit nur 2 farben
-
Behandle eine Farbe wie einen Vektor.
Addition bedeutet die Farben komponentenweise zu addieren. Also Rot1+Rot2, Grün1+Grün2, Blau1+Blau2. Subtraktion analog. Rot, Grün, Blau sind jeweils float-Werte, üblicherweise zwischen 0 und 1. Multiplikation mit einem Skalar: Rot*Skalar, Grün*Skalar, Blau*Skalar.
-
Ich dachte eher, es geht darum, wirklich nur 2 Farben zu benutzen?! In dem Fall, würde ich einfach eine der Farbe zufällig wählen, wobei die Wahrscheinlichkeit dem Prozentsatz des Übergangs entspricht (in der Mitte wäre es also 0.5). Das wäre quasi ein "random dither". Andere Methode gibt es auch, kann man leicht in google nachschlagen!
-
Original erstellt von TGGC:
Ich dachte eher, es geht darum, wirklich nur 2 Farben zu benutzen?!Mein Verfahren arbeitet ja auch mit zwei Farben. Es ist nur eine Zeile Code, das ist sicher einfacher (und genauer) als mit Zufallswerten zu arbeiten.
-
Bei dir sind doch zwischendrin Mischfarben, oder? (also zwischen rot und gelb orange)
TGGC meinte es wohl so, das das Orange durch abwechselnde rote und gelbe Punkte simuliert wird (also das im Farbüberlauf wirklich nur die reinen Farben Gelb und Rot vorkommen)
-
Achso. Naja, das hatte ich wohl falsch verstanden... im Auge sollten sich diese Farben aber wieder mischen, so dass es eigentlich auf's selbe herausläuft. Es sei denn man hat nur 16 Farben oder so...
-
Original erstellt von TomasRiker:
Es sei denn man hat nur 16 Farben oder so...Ach, lies doch einfach mal, nicht 16, sondern 2 Farben soll man benutzen!
Tomas, bist du's wirklich oder hat jemand deinen Account gehackt? Oder bin ich heut so von der Rolle? Deine Aussagen komen mir heut so unberlegt vor!
-
Ups, Doppelpost...
[ Dieser Beitrag wurde am 10.02.2003 um 18:05 Uhr von TomasRiker editiert. ]
-
Nein, ich bin's nicht, ich bin mein Nachbar!
Nun stell Dich mal nicht so blöd, lieber TGGC. Was könnte ich wohl mit "16 Farben zur Verfügung" meinen? Vielleicht 4-Bit-Grafik wie es sie unter BASIC mit "SCREEN 12" gab?...
Dann gibt es nämlich einen Grund, dieses "Dithering" zu verwenden anstelle von einer exakten Überblendung, die man bei 4-Bit-Grafik wohl vergessen kann.Man kann dieses Topic hier nämlich auch anders verstehen: "Farbverlauf mit nur 2 Farben"... könnte einmal das mit dem Dithering bedeuten und einmal, dass der Farbverlauf aus zwei Kontrollfarben besteht. Es gibt ja auch Farbverläufe mit mehreren Farben, z.B. am Anfang Rot, in der Mitte Grün und am Ende Blau oder sowas.
Übrigens geht das ganz schön auf die Nerven, wenn Du immer alles so kritisieren musst... Schau Dir mal Deine letzten paar Beiträge in den anderen Threads an, dann weißt Du was ich meine.
Man muss ja echt aufpassen, sonst drehst Du einem jedes Wort irgendwie um.
Aber ich kann das auch, willste mal sehen?Original erstellt von TGGC:
Deine Aussagen komen mir heut so unberlegt vor!Wie, unberlegt? Meinst Du unbelegt? Womit soll ich sie denn belegen? Mit Wurst? Aber sowas hat ja hier gar nichts zu suchen. Du kommst mir heute sehr seltsam vor. Aber wenn Du weiter über Essen reden willst, frag Marc++us doch, ob er nicht ein Kochforum aufmachen kann.
[ Dieser Beitrag wurde am 10.02.2003 um 18:11 Uhr von TomasRiker editiert. ]
-
Original erstellt von TomasRiker:
[QB]Meinst Du unbelegt?Nein, "unüberlegt" sollte es heissen.
Was hat es denn miteinander zu tun ob ich 16, 256 oder 2^16 Farben habe, das sich die Farben im Auge mischen? Ein Unterschied in der Berechnung bleibt, unababhängig vom Aussehen. Dein Code ist nur eine Zeile, aber dazu erstmal Operatoren überladen ist nicht trivial, wenn man bedenkt, das die Farbe verschiedene Formate haben kann.
-
Ich hatte mich ja bloß gefragt, warum jemand einen solchen "körnigen" Farbverlauf haben wollte, und habe dann lediglich festgestellt, dass dies wohl seinen Grund in einer starken Begrenzung der zur Verfügung stehenden Farben haben wird. Mehr nicht.
-
friede freude eierkuchen .. trotzdessen ist das problem noch ungelöst und sehr sehr interessant..
-
also TCCG hat recht, ich hab wirklich nur 2 farben zur verfügung (habe 256 farben und eine standard-palette in de alle möglichen farben vorkommen) ich will halt einen farbverlauf von blau nach schwarz aber aufgrund der standard-palette gibt es dazwischen nur so 4 abstufungen. deshalb möchte ich dithering (ich wusste erst nicht, ob das der richtige begrff ist verwenden.
ich warte also immer noch...
cu todo
-
Original erstellt von todo:
also TCCG hat recht, ich hab wirklich nur 2 farben zur verfügung (habe 256 farben und eine standard-palette in de alle möglichen farben vorkommen) ich will halt einen farbverlauf von blau nach schwarz aber aufgrund der standard-palette gibt es dazwischen nur so 4 abstufungen. deshalb möchte ich dithering (ich wusste erst nicht, ob das der richtige begrff ist verwenden.
ich warte also immer noch...
cu todoIst doch beantwortet, woran mangelt es noch?
-
na an einer antwort! ich habe immer noch keinen code oder pseudo-code bekommen...
-
Original erstellt von todo:
na an einer antwort! ich habe immer noch keinen code oder pseudo-code bekommen...Und was ist das ?
FARBE Farbverlauf(FARBE Farbe1, FARBE Farbe2, float fInterpolation) { return Farbe1 + (Farbe2 - Farbe1) * fInterpolation; }
Damit solltest du doch weiterkommen
-
Gradient Fill
-
Und was ist das ?
FARBE Farbverlauf(FARBE Farbe1, FARBE Farbe2, float fInterpolation) { return Farbe1 + (Farbe2 - Farbe1) * fInterpolation; }
Damit solltest du doch weiterkommen
Das is' Käse.
Er will ja eben keine Mischfarben.Trotzdem hat TGGC ja prinzipiell schon 'ne Antwort gegeben, mit dem "Random Dithering":
Ich dachte eher, es geht darum, wirklich nur 2 Farben zu benutzen?! In dem Fall, würde ich einfach eine der Farbe zufällig wählen, wobei die Wahrscheinlichkeit dem Prozentsatz des Übergangs entspricht (in der Mitte wäre es also 0.5). Das wäre quasi ein "random dither". Andere Methode gibt es auch, kann man leicht in google nachschlagen!
Den Pseudo-Code mußt Du Dir nu' selber zusammendenken...
Deinna an einer antwort! ich habe immer noch keinen code oder pseudo-code bekommen...
klingt den Leuten hier wohl zu fratzig...!
Verständlicherweise...
:p
Greetz.
-
für sowas könnte man erstmal ein ganz normales bild mit "ausreichend" farben zeichnen und im nachhinein auf 2 runterrechnen, da gibt es dann genügend verfrahren die gute qualität liefern.
zweite alternative wäre noch die position des pixels den du setzt irgendwie miteinzurechnen, von mir aus den farbwert den du mit T.Rikers methode bekommst mit xor von (x^y).
wenn du aber keine position hast, dann xor mit ((int)(fInterpolation*16.f)); dann bekommst du ebenfalls ein komisches mußter dass irgendwie ein farbwert in farben abbildet...
natürlich darfst du jeweils nur das unterste bit benutzten bei den farben die du bekommst..... das ganze geheimniss.
rapso->greets();
-
Mein Senf:
Man müste von X(0) nach x(1024) , also von links nach rechts den Bildschirm in meintetwegen 128 Spalten teilen, diese Spalten dann mit der entsprechenden Variation von blau und schwarz füllen, sodass der Durchschnitt von bau und schwarz, wenn man diese mischen WÜRDE die Mischfarbe ergibt. In der Mitte des
Bildschrims müste das Verhältnis 50:50 sein und blau und schwarz wie ein Schachbrett aussehen.. , bloß den Algorythmus sollte man sich selbst erstellen
wenns hier keinen gibt..mfg
-
Tipp 2.. Man kann im Dosmodus die komplette Farbpalette manipulieren und ein flüssigen Farbübergang von blau nach schwarz in 256 Stufen erreichen.. Unter Windows wirds schwer, ausser du bist im Vollbildmodus.. Im Fenster gehts deswegen nicht, weil noch die Fareben des Desktops im 256Farbmodus auch angezeigt werden müssen..