ForHosting KIT · Entwickler-Tools

Kubische Bézier-Farbinterpolation

Die kubische Bézier-Farbinterpolation berechnet die exakte Farbe zwischen zwei hexadezimalen Endpunkten, nachdem eine Zeitkurve den gewünschten Anteil umgeformt hat.

● BetaKostenlos · im Browser
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Geben Sie Start- und Endfarbe, einen Anteil von null bis eins sowie die vier von CSS cubic-bezier verwendeten Kontrollkoordinaten an. Das Ergebnis enthält den geglätteten Anteil, normalisierte Farben, den Hexadezimalwert und die RGB-Kanäle. So lassen sich Übergänge in Designwerkzeugen, Animationspipelines, Tests und generierten Assets reproduzieren, ohne von der Animationsuhr eines Browsers abhängig zu sein.

Trennen Sie Zeitfortschritt und sichtbaren Farbfortschritt

Eine lineare Mischung setzt fünfzig Prozent der verstrichenen Zeit mit fünfzig Prozent des Abstands zwischen zwei Farben gleich. Reale Oberflächen benötigen häufig einen anderen Rhythmus: Ein Übergang kann sanft beginnen, in der Mitte beschleunigen und sich dem Ziel langsam annähern. Diese Fähigkeit wendet vor dem Mischen der RGB-Kanäle eine kubische Bézier-Zeitkurve an. Die Eingabe t bleibt der Anteil auf der Zeitachse, während eased_t den von der Kurve erzeugten Farbanteil angibt. Diese Trennung macht das Ergebnis leicht prüfbar und wiederverwendbar. Zum Zeitpunkt null wird die Startfarbe und zum Zeitpunkt eins die Endfarbe ausgegeben. Dazwischen bestimmt die Kurve, wie schnell sich die Kanäle verändern. Da die Operation ausschließlich konkrete Zahlen erhält und keine Uhr abfragt, liefern wiederholte Anfragen mit identischen Eingaben dasselbe Ergebnis. Das hilft, wenn Renderer, Designexport, Testsuite oder Buildprozess bei einem Übergangsbild übereinstimmen müssen, ohne eine Animation auszuführen oder die Browseranzeige zu einem bestimmten Zeitpunkt zu schätzen.

So wird der kubische Bézier-Anteil gelöst

Eine CSS-ähnliche kubische Bézierkurve beginnt bei null, endet bei eins und besitzt zwei vom Aufrufer festgelegte Kontrollpunkte. Der angeforderte Zeitanteil liegt auf der x-Achse der Kurve. Das y-Polynom einfach mit derselben Zahl auszuwerten, wäre daher bei den meisten Kurven falsch. Der Rechner sucht zunächst den internen Kurvenparameter, dessen x-Koordinate dem gewünschten Anteil entspricht. Er verwendet bei geeigneter Steigung eine begrenzte Newton-Suche und andernfalls eine Bisektionssuche mit fester Schrittzahl als stabile Rückfallebene. Danach wertet er die y-Koordinate am gefundenen Parameter aus. Die x-Kontrollwerte müssen zwischen null und eins liegen; dadurch bleibt die Zeit monoton und die Antwort eindeutig. Die y-Werte dürfen von minus zehn bis zehn reichen und ermöglichen Vorwegnahme sowie Überschwingen. Verlässt das Easing den normalen Bereich, werden die interpolierten RGB-Kanäle auf gültige Bytewerte begrenzt. Dezimalwerte werden einheitlich und Kanäle auf die nächste Ganzzahl gerundet. Diese Regeln vermeiden Abhängigkeiten von Browser-Engine, Bildrate und plattformspezifischer Animationsabtastung.

Wählen Sie Eingaben und verwenden Sie die Ergebnisfarbe

Geben Sie jede Farbe mit drei oder sechs Hexadezimalstellen ein, wahlweise mit vorangestelltem Doppelkreuz. Kurzformen werden erweitert; jede akzeptierte Farbe erscheint normalisiert mit sechs Kleinbuchstaben beziehungsweise Ziffern. Legen Sie t zwischen null und eins fest und danach x1, y1, x2 und y2 in der üblichen cubic-bezier-Reihenfolge. Die verbreitete ease-in-out-Form nutzt beispielsweise 0.42, 0, 0.58 und 1. Die Antwort bewahrt die normalisierten Endpunkte und die Kurve, zeigt den berechneten geglätteten Anteil und liefert sowohl eine Hexfarbe als auch getrennte Rot-, Grün- und Blaukanäle. Nutzen Sie den Hexwert in CSS, SVG, Designtokens oder Bildanweisungen und das Kanalobjekt für strukturierte numerische Daten. Für eine Bildfolge rufen Sie die Operation mit gleichmäßig verteilten Zeitanteilen auf und lassen Endpunkte sowie Kontrollwerte unverändert. Die Validierung weist fehlerhafte Farben, nicht endliche Zahlen, Zeitanteile außerhalb des Bereichs, nicht monotone x-Kontrollen und übermäßige y-Kontrollen zurück. Eine ungültige Konfiguration kann somit nicht unbemerkt ein irreführendes Übergangsmuster erzeugen.

Deterministische Animationsbilder erzeugen

Tasten Sie einen geglätteten Farbübergang für Renderer oder Assetpipelines an exakten Anteilen ab, ohne eine Echtzeituhr zu verwenden.

Übergangsfarben einer Oberfläche testen

Berechnen Sie den erwarteten Hexadezimalwert für visuelle und Komponententests mit einer dokumentierten kubischen Bézierkurve.

Geglättete Designtoken-Skalen erstellen

Erzeugen Sie Farbtokens, deren Abstände dem Beschleunigungs- und Beruhigungsrhythmus einer Oberflächenanimation folgen.

Was kostet eine Anfrage?

Jede API-Anfrage kostet $0.002. Die Browserversion kann lokal ausgeführt werden, ohne die Berechnung an die API zu senden.

Entspricht dies einer linearen Farbmischung?

Nein. Eine lineare Mischung verwendet den angegebenen Anteil direkt; diese Operation formt ihn zuerst mit der kubischen Bézierkurve um.

Warum müssen x1 und x2 zwischen null und eins liegen?

Diese Einschränkung hält den Zeitfortschritt monoton, entspricht den CSS-Zeitfunktionsregeln und erlaubt eine eindeutige Umkehrung von x.

Darf die Easingkurve überschwingen?

Ja. y1 und y2 dürfen außerhalb von null bis eins liegen. Der geglättete Anteil zeigt das Überschwingen; RGB-Kanäle werden auf gültige Werte begrenzt.

Welche Farbformate werden angenommen?

Zulässig sind drei- und sechsstellige hexadezimale RGB-Farben mit oder ohne führendes Doppelkreuz. Alphakanäle und Farbnamen sind ausgeschlossen.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/color/bezier-interpolate

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/color/bezier-interpolate \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"color1":"#ff6600","color2":"#3366ff","t":0.5,"x1":0.42,"y1":0,"x2":0.58,"y2":1}'
{
  "color1": "#ff6600",
  "color2": "#3366ff",
  "t": 0.5,
  "x1": 0.42,
  "y1": 0,
  "x2": 0.58,
  "y2": 1
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.bezier_interpolate",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Vollständige KIT-Dokumentation lesen →