std.svg.anim
SMIL-Animationen in SVG: einfache Attributanimationen (<animate>), Transformationsanimationen (<animateTransform>), Farbübergänge (<animateColor>) und Bewegung entlang eines Pfads (<animateMotion>). Keyframe-Animationen mit values und keyTimes.
→ std.svg · std.svg.elements · std.svg.path
Verwendung
import std.svg.anim;
// Einfache Attributanimation: Kreis pulsiert
SvgCircle(svg, 200.0, 200.0, 50.0, "fill:red");
SvgAnimateBegin(svg);
SvgAnimate(svg, "r", "50", "80", "1s", "indefinite", "0s");
SvgAnimateEnd(svg);
// Rotationsanimation (animateTransform)
SvgRect(svg, 150.0, 150.0, 100.0, 100.0, "fill:blue");
SvgAnimateTransform(svg, "rotate", "0 200 200", "360 200 200", "2s", "indefinite");
// Bewegung entlang Pfad
SvgCircle(svg, 0.0, 0.0, 10.0, "fill:orange");
SvgAnimateMotion(svg, "M 100 200 C 200 100 300 300 400 200", "3s", "indefinite");
// Keyframe-Animation: Opazität 0→1→0
var values: pchar := "0;1;0";
var keyTimes: pchar := "0;0.5;1";
SvgAnimateKeyframes(svg, "opacity", values, keyTimes, "2s", "indefinite");
// Farbanimation
SvgCircle(svg, 400.0, 300.0, 60.0, "fill:green");
SvgAnimateColor(svg, "fill", "green", "yellow", "1.5s", "indefinite", "0s");
// begin/end-Synchronisation: startet nach Klick
SvgAnimate(svg, "opacity", "1", "0", "0.5s", "1", "click");
// Mehrere Animationen auf dasselbe Element
SvgRect(svg, 50.0, 50.0, 80.0, 80.0, "fill:purple");
SvgAnimateBegin(svg);
SvgAnimate(svg, "x", "50", "300", "3s", "indefinite", "0s");
SvgAnimateEnd(svg);
SvgAnimateBegin(svg);
SvgAnimate(svg, "fill", "purple", "crimson", "3s", "indefinite", "0s");
SvgAnimateEnd(svg);
Funktionen
| Signatur | Sichtbarkeit | Beschreibung |
|---|---|---|
SvgAnimateBegin(svg: Svg): void | pub | Öffnet Animations-Element (wird an letztes SVG-Element gehängt) |
SvgAnimateEnd(svg: Svg): void | pub | Schließt laufendes Animations-Element |
SvgAnimate(svg: Svg, attr: pchar, from: pchar, to: pchar, dur: pchar, repeatCount: pchar, begin: pchar): void | pub | Fügt <animate> für ein Attribut ein |
SvgAnimateTransform(svg: Svg, type_: pchar, from: pchar, to: pchar, dur: pchar, repeatCount: pchar): void | pub | Fügt <animateTransform> ein (rotate, scale, translate, skewX, skewY) |
SvgAnimateMotion(svg: Svg, path: pchar, dur: pchar, repeatCount: pchar): void | pub | Bewegt Element entlang SVG-Pfad (<animateMotion>) |
SvgAnimateColor(svg: Svg, attr: pchar, from: pchar, to: pchar, dur: pchar, repeatCount: pchar, begin: pchar): void | pub | Fügt <animateColor> für Farb-Attribut ein |
SvgAnimateKeyframes(svg: Svg, attr: pchar, values: pchar, keyTimes: pchar, dur: pchar, repeatCount: pchar): void | pub | Keyframe-Animation mit Semikolon-getrennten Werten |
SvgAnimateSet(svg: Svg, attr: pchar, to: pchar, begin: pchar, dur: pchar): void | pub | Setzt Attribut nach begin auf to für Dauer dur (<set>) |
Letzte Aktualisierung: 2026-05-23
