Inkscape: Rechteck mit Regenbogenfüllung [geschlossen]

Ich möchte eine Form erstellen, die graduell mit Farben des sichtbaren Lichtspektrums gefüllt ist - von Rot bis Blau. Ich verwende Inkscape. Wenn ich versuche, einen Farbverlauf von Rot nach Blau anzugeben, wird ein seltsamer Farbpfad gewählt. Jede Hilfe wäre willkommen

Würden Sie bitte eine Bearbeitung vornehmen, die uns den von Ihnen unternommenen Versuch zeigt?
Die unten gegebene Antwort hat gut funktioniert: Ich habe upload.wikimedia.org/wikipedia/commons/c/cc/Spectrum.svg verwendet

Antworten (1)

Dies hat mit dem Algorithmus zu tun, den InkScape und andere Grafikprogramme verwenden, um Farbverläufe zu erstellen, nämlich (Pseudo-Code):

var gradient = []
var firstColor, secondColor, steps
for i in range(steps):
  p = i/steps
  R = firstColor.R * p + secondColor.R * (1 - p)
  G = firstColor.G * p + secondColor.G * (1 - p)
  B = firstColor.B * p + secondColor.B * (1 - p)
  gradient.push((R,G,B))

Das Spektrum des sichtbaren Lichts funktioniert jedoch nicht auf diese Weise, da die Farbe der realen Welt nicht RGB ist. RGB ist eine Methode, um die Augen dazu zu bringen, viele Farben mit wenigen Farben zu sehen, genau wie CMYK.

Technisch gesehen hat Ihre Frage keine Antwort, weil ...

Farbdisplays (z. B. Computermonitore und Fernseher) können nicht alle vom menschlichen Auge wahrnehmbaren Farben wiedergeben. Farben außerhalb des Farbumfangs des Geräts, wie z. B. die meisten Spektralfarben, können nur angenähert werden.

Angenommen, Sie möchten die Annäherung in InkScape vornehmen. Leider können Sie dies nur tun, indem Sie einen großen Farbverlauf mit allen Farben erstellen. Der SVG-Standard hat kein Flag für "sichtbare Lichtverläufe".

Mit diesem Bild aus Wikipedia ...

Spektrum in Inkscape bearbeitet

Sie können die beiden Kontrollpunkte verschieben, bis sie nur noch den Farbverlauf von Rot nach Blau anzeigen :)

neues Spektrum

Alternativ können Sie den Verlaufseditor verwenden, um die Reihenfolge der Farben umzukehren und alle Farben vor und nach Rot und Blau zu löschen.