Ellipse
Disegna un'ellisse o un arco ellittico entro una determinata larghezza e altezza. Scale ellittiche o contorni decorativi possono essere formati dall'angolo iniziale, dall'angolo di scansione, dal riempimento e dal tratto.
Esempio
function main() {
return (
<Ellipse
width={180}
height={100}
background="clear"
stroke={$env.accent}
lineWidth={6}
startAngle={0}
sweepAngle={270}
strokePosition="center"
/>
);
}
Utilizzo
- Ellipse e Arc usano tutta larghezza e altezza; uguali danno un cerchio. Gli archi parziali restano aperti senza unirsi al centro. background riempie solo un giro intero chiuso.
- Angoli in gradi: 0 destra, 90 basso, sweep positivo orario. startAngle modulo 360, sweepAngle limitato a −360…360. Zero non disegna, ±360 chiude. wrap:360 solo per startAngle.
- background/stroke accettano Color o Gradient. Usa tre costruttori Gradient: posizioni e centri 0–1, raggi in punti. HDR avvolge un colore; luminosità dipende da dispositivo e ambiente.
Proprietà
startAngle?numberAngolo iniziale in gradi, normalizzato modulo 360 durante il campionamento.
0sweepAngle?numberAmpiezza in gradi, limitata a -360…360 durante il campionamento. I valori positivi seguono il senso orario; wrap non è supportato.
360background?PaintRiempimento di un cerchio o ellisse completi e chiusi. Ignorato per archi parziali.
HDR($env.dark ? "white" : "black")stroke?PaintColore o gradiente del tratto; clear lo nasconde.
"clear"lineWidth?numberSpessore del tratto in punti; 0 non disegna il tratto.
2strokePosition?"inside" | "center" | "outside"Posizione del tratto rispetto al contorno completo del cerchio o dell’ellisse. Valore predefinito: inside.
"inside"lineCap?"round" | "butt" | "square"Estremità: butt taglia, square prolunga in quadrato, round arrotonda.
"round"dash?number[]Lunghezze alternate di tratto e spazio in punti; array vuoto per linea continua.
[]dashPhase?numberSpostamento del motivo tratteggiato in punti.
0Proprietà comuni
width?number | "auto" | "fill"Larghezza in punti, dimensione automatica o riempimento del contenitore.
"fill"height?number | "auto" | "fill"Altezza in punti, dimensione automatica o riempimento del contenitore.
"fill"x?numberSpostamento visivo in punti: x a destra, y in basso; non cambia lo spazio nel layout.
0y?numberSpostamento visivo in punti: x a destra, y in basso; non cambia lo spazio nel layout.
0transform?ViewTransformTrasformazione globale senza cambiare il layout. Traslazione in punti, rotazione/inclinazione in gradi, scala 1 invariata, ancoraggi 0–1.
{rotation: 0}opacity?numberOpacità dell’intero View: 0 trasparente, 1 opaco.
1clipped?booleanRitaglia il disegno oltre i limiti del View.
falseclip?"rectangle" | "ellipse"Forma di ritaglio rectangle o ellipse; Material accetta anche false per disattivarlo.
"rectangle"mask?View | nullView per la maschera alfa. Centrata senza modificare il layout; null disattiva la maschera.
<Circle width="fill" height="fill" background="white"/>zIndex?numberOrdine tra elementi fratelli; valori più grandi appaiono davanti.
0blur?numberRaggio della sfocatura in punti; 0 la disattiva.
4innerShadow?DrawingEffectColore, opacità, raggio di sfocatura e offset x/y dell’effetto; distanze in punti.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectColore, opacità, raggio di sfocatura e offset x/y dell’effetto; distanze in punti.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorColore dell’ombra esterna.
HDR("black")shadowOpacity?numberOpacità dell’ombra 0–1; 0 la nasconde.
0shadowRadius?numberRaggio di sfocatura dell’ombra esterna in punti.
4shadowX?numberOffset dell’ombra in punti: x a destra, y in basso.
0shadowY?numberOffset dell’ombra in punti: x a destra, y in basso.
2animations?EllipseAnimation[]Anima le modifiche alle proprietà. duration/delay in secondi; from/to sono estremi; repeat/autoreverse controllano le ripetizioni, wrap il periodo.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentità stabile tra elementi fratelli.
Esempio pratico
function main() {
return (
<VStack spacing={12}>
<Ellipse width={180} height={80} background={$env.accent} />
<Ellipse
width={180}
height={80}
background="clear"
stroke={$env.accent}
lineWidth={6}
startAngle={180}
sweepAngle={180}
/>
</VStack>
);
}
Animazione
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYdashPhasestrokelineWidthstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYQuando omesso
La tabella documenta omissioni verificate nell’implementazione. Gli esempi non sono valori predefiniti. Specifica valori per risultati fissi; misure e colori contestuali non sono costanti.
| Proprietà | Quando omesso |
|---|---|
startAngle | 0 |
sweepAngle | 360 |
lineWidth | 2 |
strokePosition | "inside" |
background | HDR($env.dark ? 'white' : 'black') |