Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Komplementärfarbe

67 views
Skip to first unread message

Peter Frey

unread,
Dec 20, 2000, 8:49:20 AM12/20/00
to
Hallo zusammen,

weiß jemand, wie man zu einer Farbe (Long-Wert, bzw. RGB-Wert bekannt) die
Komplementärfarbe ermittelt?

Vielen Dank, Gruß Peter


Schmidt

unread,
Dec 20, 2000, 9:26:10 AM12/20/00
to

Peter Frey <pF...@datex.de> schrieb in im Newsbeitrag:
3a40b90f$1...@news.basicworld.com...

> Hallo zusammen,
>
> weiß jemand, wie man zu einer Farbe (Long-Wert, bzw. RGB-Wert bekannt) die
> Komplementärfarbe ermittelt?

Mit Not RGBValue.

Olaf


Jost Schwider

unread,
Dec 20, 2000, 10:11:27 AM12/20/00
to
Hallo Peter,

> weiß jemand, wie man zu einer Farbe (Long-Wert, bzw.
> RGB-Wert bekannt) die Komplementärfarbe ermittelt?

Grundsätzlicher Zusammenhang:
Farbe = RGB(R, G, B)
Komplement = RGB(255 - R, 255 - G, 255 - B)

Oder berechnet aus dem Long-Wert:
Komplement = Farbe Xor &HFFFFFF

Viele Grüße
Jost aus Soest (sprich: Joost aus Soost)
--
Visual Basic, Web-Technik, ... - http://www.schwider.de/

Sent via Deja.com
http://www.deja.com/

Peter Frey

unread,
Dec 21, 2000, 2:17:50 AM12/21/00
to
Hallo,

zunächst mal vielen Dank. Allerdings komme ich damit nicht ganz klar.

Eine Funktion RGBValue finde ich in VB nicht.

Falls das Ergebnis der Funktion RGB(rot,grün,blau) gemeint sein sollte, so
liefert Not RGB(,,) eine negative Zahl, die sich nicht als Eigenschaftswert
verwenden läßt.

Falls das Ergebnis der Funktion RGB(Not rot, Not grün, Not Blau) gemeint
sein sollte, so liefert die RGB-Funktion hierfür einen Fehler, weil Not rot
etc. negative Zahlen sind und die RGB-Funktion diese nicht verträgt.

Der Hintergrund ist folgender. Egal, welche Farbe als BackColor eines
Controls eingestellt ist, soll mit der Komplemetärfarbe die
ForeColor-Eigenschaft so eingestellt werden, daß Text optimal lesbar ist.

Ich hoffe, daß dafür die Komplemetärfarbe am besten geeignet ist. Aus der
Schule glaube ich noch zu wissen, daß die Komplementärfarbe zu rot grün ist,
zu blau orange und zu violett gelb.

Für alle anderen Farben möchte ich sie aber mit der gesuchten Funktion
ermitteln.

Ich habe auch schon versucht, die Farbe RGB(255-rot, 255-grün,255-blau) zu
verwenden. Dies scheint aber nicht die Komplemetärfarbe zu liefern. Für Rot
liefert sie beispielsweise nicht grün zurück, sondern RGB(0,255,255).

Könntest du mir dabei noch etwas mehr auf die Sprünge helfen?

Vielen dank, Grüße Peter

Schmidt <s...@online.de> schrieb in im Newsbeitrag:
3a40...@news.basicworld.com...

Hoogo

unread,
Dec 21, 2000, 4:27:44 AM12/21/00
to
>weiß jemand, wie man zu einer Farbe (Long-Wert, bzw. RGB-Wert bekannt) die
>Komplementärfarbe ermittelt?

Da wird Dir das RGB-Modell warscheinlich nciht direkt weiterhelfen. Mit dem
HSL (Farbe/Sättigung/Helligkeit, jeweils 8 Bit) dürfte sich die
Komplementärfarbe aber recht einfach bestimmen lassen: Farbe+128,
Helligkeit+128, Überlauf abschneiden. Jetzt fehlt nur noch eine Funktion, um
die beiden Farbmodelle miteinander auszutauschen. Vielleicht hat Basic ja da
schon was für, keine Ahnung.

Frank/Hoogo


Thomas Schremser

unread,
Dec 21, 2000, 4:58:20 AM12/21/00
to
Hoogo schrieb:

Visual Basic selbst nicht; solche Funktionen findest Du aber unter

uggc://jjj.nobhgio.qr/xuj/negvxry/xujetouyfufi.ugz

(Mit Rot13 verschlüsselt, weil man es anscheinend im Klartext hier nicht
posten kann)

Grüße
Thomas

Andreas Salutzki

unread,
Dec 21, 2000, 6:02:09 AM12/21/00
to
> Ich hoffe, daß dafür die Komplemetärfarbe am besten geeignet ist. Aus der
> Schule glaube ich noch zu wissen, daß die Komplementärfarbe zu rot grün ist,
> zu blau orange und zu violett gelb.
>

Tja, da scheinst du dich zu irren.
Die Komplentär-Farbe ist die Farbe mit der man addieren muss um Weiß zu erhalten.
ES gibt die 3 Grundfarben ROT GRÜN BLAU aus der sich alle anderen Farben zusammensetzen
Alle 3 Grundfarben zusammen ergeben WEIß.
Kompl. von BLAU = GELB (ROT+GRÜN)
um das Komplement von einer Farbe zu erhalten muss man einfach diese Farbe von WEIß abziehen.

Kompl = &HFFFFFF& - Farbe

ich hoffe das hilft dir weiter,
Andy


Schmidt

unread,
Dec 21, 2000, 5:42:29 AM12/21/00
to

Peter Frey <pF...@datex.de> schrieb in im Newsbeitrag:
3a41...@news.basicworld.com...

> Hallo,
>
> zunächst mal vielen Dank. Allerdings komme ich damit nicht ganz klar.
>
> Eine Funktion RGBValue finde ich in VB nicht.
>
> Falls das Ergebnis der Funktion RGB(rot,grün,blau) gemeint sein sollte, so
> liefert Not RGB(,,) eine negative Zahl, die sich nicht als Eigenschaftswert
> verwenden läßt.

Sorry, war da etwas nachlässig (Hab das maskieren vergessen).
Hier nochmal ein Beispiel:

Private Declare Function GetSysColor& Lib "user32" (ByVal Idx&)

Private Sub Form_Click()
BackColor = vbYellow
ForeColor = InvertColor(BackColor)
Print "SomeText"
End Sub

Private Function InvertColor&(ByVal Color&)
If Color < 0 Then Color = GetSysColor(Color And &HFFFF&)
InvertColor = (Not Color) And &HFFFFFF
End Function

Olaf


Daniel Wessels

unread,
Dec 21, 2000, 8:54:17 AM12/21/00
to
> Hallo,

Ho Ho Ho!

> Ich hoffe, daß dafür die Komplemetärfarbe am besten geeignet ist. Aus der
> Schule glaube ich noch zu wissen, daß die Komplementärfarbe zu rot grün ist,
> zu blau orange und zu violett gelb.

Fast richtig, die Komplementärfarbe zu einer Grundfarbe sind die
1:1 Mischungen aus den beiden übrigen Grundfarben.
Beim Rechner (lichtbasiert) sind die drei Farben natürlich RGB.
Auf dem Papier (hab den Begrif vergessen) sind die drei Grundfarben
Rot/Blau/GELB.

Daraus folgt für Komplementärfarben auf dem Rechner:

RGB(255,0,0) <=> RGB(0,255,255)
RGB(0,255,0) <=> RGB(255,0,255)
RGB(0,0,255) <=> RGB(255,255,0)


> Ich habe auch schon versucht, die Farbe RGB(255-rot, 255-grün,255-blau) zu
> verwenden. Dies scheint aber nicht die Komplemetärfarbe zu liefern. Für Rot
> liefert sie beispielsweise nicht grün zurück, sondern RGB(0,255,255).

Also ist Dieser Ansatz schon richtig, allerdings bildet er
halt nicht den Farbkreis ab, den man in der Schule lernt.
Ist die Frage, ob das reicht oder nicht.
Wie man jetzt allerdings die Farben in diesen
RYB(Red,Yellow,Blue)-Kreis umsetzen soll,
weiss ich so spontan auch nicht.


Gruß
Daniel

Andreas Salutzki

unread,
Dec 21, 2000, 3:36:32 PM12/21/00
to

> Ich hoffe, daß dafür die Komplemetärfarbe am besten geeignet ist. Aus der
> Schule glaube ich noch zu wissen, daß die Komplementärfarbe zu rot grün ist,
> zu blau orange und zu violett gelb.
>

Tja, da scheinst du dich zu irren.

0 new messages