Polyline
Zeichnen Sie eine Polylinie, indem Sie eine Reihe von Punkten nacheinander verbinden. closed kann den letzten Punkt und den ersten Punkt verbinden, um eine geschlossene Kontur zu bilden, und ermöglicht das Füllen; Die Koordinaten verwenden die Anzahl der Punkte im aktuellen View.
Beispiel
function main() {
return (
<Polyline
points={[
{ x: 0, y: 80 },
{ x: 60, y: 10 },
{ x: 120, y: 80 },
]}
closed={true}
background="#30B3A233"
stroke={$env.accent}
lineWidth={3}
/>
);
}
Verwendung
- points verbinden sich in Arrayreihenfolge; unter zwei Punkten wird nichts gezeichnet. closed=true verbindet Ende und Anfang und erlaubt background. Koordinaten sind Punkte, keine Prozentwerte.
- contentAnimation betrifft Text, Bilder und strukturierte Daten. interpolate benötigt passende Polyline-Punktzahl/closed, Path-Befehlsfolge oder Diagrammstruktur. Strukturänderungen werden sofort übernommen.
Eigenschaften
pointsReadonlyArray<ViewPoint>Lokale Punktkoordinaten in Punkten. Weniger als zwei Punkte werden nicht gezeichnet.
[{x: 0, y: 20}, {x: 40, y: 0}, {x: 80, y: 40}]closed?booleanLetzten mit erstem Punkt verbinden; geschlossene Polylinien erlauben background-Füllung.
falsebackground?PaintFüllung einer geschlossenen Polylinie. Wird bei closed=false ignoriert.
"clear"stroke?PaintLinienfarbe oder Verlauf; clear blendet die Linie aus.
HDR($env.dark ? "white" : "black")lineWidth?numberLinienstärke in Punkten; 0 zeichnet keine Linie.
2lineCap?"round" | "butt" | "square"Linienende: butt endet am Punkt, square verlängert eckig, round rundet.
"round"lineJoin?"round" | "miter" | "bevel"Form von Linienverbindungen: miter, round oder bevel.
"round"dash?number[]Abwechselnde Strich- und Lückenlängen in Punkten; leeres Array bedeutet durchgezogen.
[]dashPhase?numberVersatz des Strichmusters in Punkten.
0trimStart?numberSichtbarer Pfadabschnitt trimStart bis trimEnd in 0–1. Circle/Ellipse/Arc nutzen Winkel.
0trimEnd?numberSichtbarer Pfadabschnitt trimStart bis trimEnd in 0–1. Circle/Ellipse/Arc nutzen Winkel.
1contentAnimation?ContentAnimationOptionaler Inhaltsübergang. interpolate erfordert dieselbe Punktanzahl und denselben Schließzustand; sonst erfolgt die Aktualisierung sofort.
{type: "interpolate", duration: 0.25}Allgemeine Eigenschaften
width?number | "auto" | "fill"Breite in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
"fill"height?number | "auto" | "fill"Höhe in Punkten, automatische Größe oder Ausfüllen des übergeordneten Bereichs.
"fill"x?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0y?numberVisueller Versatz in Punkten: x nach rechts, y nach unten; der Layoutplatz bleibt gleich.
0transform?ViewTransformGesamten View ohne Layoutänderung transformieren. Verschiebung in Punkten, Drehung/Neigung in Grad, Skalierung 1 unverändert, Anker 0–1.
{rotation: 0}opacity?numberDeckkraft des gesamten Views: 0 transparent, 1 undurchsichtig.
1clipped?booleanZeichnung außerhalb der View-Grenzen abschneiden.
falseclip?"rectangle" | "ellipse"Schnittform rectangle oder ellipse; Material erlaubt auch false zum Abschalten.
"rectangle"mask?View | nullView als Alphamaske. Zentriert ohne Einfluss auf das Layout; null deaktiviert die Maske.
<Circle width="fill" height="fill" background="white"/>zIndex?numberZeichenreihenfolge unter Geschwistern; größere Werte liegen vorne.
0blur?numberUnschärferadius in Punkten; 0 deaktiviert die Unschärfe.
4innerShadow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectEffektfarbe, Deckkraft, Unschärferadius und x/y-Versatz; Entfernungen in Punkten.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorFarbe des äußeren Schattens.
HDR("black")shadowOpacity?numberSchattendeckkraft 0–1; 0 blendet ihn aus.
0shadowRadius?numberUnschärferadius des äußeren Schattens in Punkten.
4shadowX?numberSchattenversatz in Punkten: x rechts, y unten.
0shadowY?numberSchattenversatz in Punkten: x rechts, y unten.
2animations?Animation[]Attributänderung animieren. duration/delay in Sekunden; from/to sind Endwerte; repeat/autoreverse steuern Wiederholung, wrap die Periode.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberStabile Kennung unter Geschwisterelementen.
Praxisbeispiel
function main() {
return (
<HStack spacing={12}>
<Polyline
width={100}
height={80}
points={[
{ x: 0, y: 70 },
{ x: 50, y: 10 },
{ x: 100, y: 70 },
]}
closed={false}
background="#30B3A244"
stroke={$env.accent}
/>
<Polyline
width={100}
height={80}
points={[
{ x: 0, y: 70 },
{ x: 50, y: 10 },
{ x: 100, y: 70 },
]}
closed={true}
background="#30B3A244"
stroke={$env.accent}
/>
</HStack>
);
}
Animation
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtrimStarttrimEnddashPhasestrokelineWidthtransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYBeim Weglassen
Die Tabelle zeigt implementierte Vorgaben beim Weglassen. Eigenschaftsbeispiele sind keine Standardwerte. Für feste Ergebnisse explizite Werte setzen; kontextabhängige Maße und Themenfarben sind keine Konstanten.
| Eigenschaften | Beim Weglassen |
|---|---|
closed | false |
background | "clear" |
lineWidth | 2 |
trimStart | 0 |
trimEnd | 1 |
stroke | HDR($env.dark ? 'white' : 'black') |