Ellipse
Dibuja una elipse o un arco elíptico dentro de un ancho y alto determinados. Se pueden formar escalas elípticas o contornos decorativos mediante ángulo inicial, ángulo de barrido, relleno y trazo.
Ejemplo
function main() {
return (
<Ellipse
width={180}
height={100}
background="clear"
stroke={$env.accent}
lineWidth={6}
startAngle={0}
sweepAngle={270}
strokePosition="center"
/>
);
}
Uso
- Ellipse y Arc usan todo el ancho y alto; solo son círculos si coinciden. Los arcos parciales no unen extremos al centro. background rellena únicamente una vuelta completa cerrada.
- Ángulos en grados: 0 derecha, 90 abajo, sweep positivo horario. startAngle módulo 360; sweepAngle limitado a −360…360. 0 no dibuja; ±360 cierra. wrap:360 es para startAngle, no sweepAngle.
- background/stroke aceptan Color o Gradient. Usa los tres constructores Gradient: posiciones y centros 0–1, radios en puntos. HDR envuelve un color; el brillo depende del dispositivo y del entorno.
Propiedades
startAngle?numberÁngulo inicial en grados, normalizado módulo 360 al muestrear.
0sweepAngle?numberBarrido en grados, limitado a -360…360 al muestrear. Los valores positivos giran en sentido horario; no admite wrap.
360background?PaintRelleno de un círculo o elipse completos y cerrados. Se ignora en arcos parciales.
HDR($env.dark ? "white" : "black")stroke?PaintColor o degradado del trazo; clear lo oculta.
"clear"lineWidth?numberGrosor del trazo en puntos; 0 no dibuja trazo.
2strokePosition?"inside" | "center" | "outside"Posición del trazo respecto al contorno completo del círculo o la elipse. Por defecto, inside.
"inside"lineCap?"round" | "butt" | "square"Extremos: butt corta, square prolonga en cuadrado, round redondea.
"round"dash?number[]Longitudes alternas de trazo y hueco en puntos; matriz vacía para línea continua.
[]dashPhase?numberDesplazamiento del patrón de guiones en puntos.
0Propiedades comunes
width?number | "auto" | "fill"Anchura en puntos, tamaño automático o relleno del contenedor.
"fill"height?number | "auto" | "fill"Altura en puntos, tamaño automático o relleno del contenedor.
"fill"x?numberDesplazamiento visual en puntos: x a la derecha, y hacia abajo, sin cambiar el espacio del diseño.
0y?numberDesplazamiento visual en puntos: x a la derecha, y hacia abajo, sin cambiar el espacio del diseño.
0transform?ViewTransformTransformación global sin alterar el diseño. Traslación en puntos, giro/inclinación en grados, escala 1 sin cambios, anclajes 0–1.
{rotation: 0}opacity?numberOpacidad de todo el View: 0 transparente, 1 opaco.
1clipped?booleanRecorta el dibujo que sobresale de los límites del View.
falseclip?"rectangle" | "ellipse"Recorte rectangle o ellipse; Material también admite false para desactivarlo.
"rectangle"mask?View | nullView de máscara alfa. Centrada sin afectar al diseño; null desactiva la máscara.
<Circle width="fill" height="fill" background="white"/>zIndex?numberOrden entre elementos hermanos; los valores mayores aparecen delante.
0blur?numberRadio de desenfoque en puntos; 0 lo desactiva.
4innerShadow?DrawingEffectColor, opacidad, radio de desenfoque y desplazamiento x/y del efecto; distancias en puntos.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectColor, opacidad, radio de desenfoque y desplazamiento x/y del efecto; distancias en puntos.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorColor de la sombra exterior.
HDR("black")shadowOpacity?numberOpacidad de la sombra de 0 a 1; 0 la oculta.
0shadowRadius?numberRadio de desenfoque de la sombra, en puntos.
4shadowX?numberDesplazamiento de sombra en puntos: x derecha, y abajo.
0shadowY?numberDesplazamiento de sombra en puntos: x derecha, y abajo.
2animations?EllipseAnimation[]Anima cambios de propiedad. duration/delay en segundos; from/to son extremos; repeat/autoreverse controlan repeticiones y wrap el período.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberIdentidad estable entre elementos hermanos.
Ejemplo práctico
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>
);
}
Animación
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYdashPhasestrokelineWidthstartAnglesweepAngletransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYAl omitir
La tabla documenta omisiones comprobadas en la implementación. Los ejemplos no son valores predeterminados. Especifica valores para resultados fijos; tamaños y colores del contexto no son constantes.
| Propiedades | Al omitir |
|---|---|
startAngle | 0 |
sweepAngle | 360 |
lineWidth | 2 |
strokePosition | "inside" |
background | HDR($env.dark ? 'white' : 'black') |