Polyline
Dibuja una polilínea conectando un conjunto de puntos en secuencia. closed puede conectar el último punto y el primer punto para formar un contorno cerrado y permite el relleno; las coordenadas utilizan el número de puntos en el View actual.
Ejemplo
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}
/>
);
}
Uso
- points conecta en orden; menos de dos no dibuja. closed=true une final e inicio y permite background. Son puntos locales, no porcentajes; calcula coordenadas para adaptar el tamaño.
- contentAnimation cambia texto, imágenes o datos estructurados. interpolate requiere puntos/closed de Polyline, secuencia Path o muestras compatibles. Los cambios de estructura se aplican inmediatamente.
Propiedades
pointsReadonlyArray<ViewPoint>Coordenadas locales en puntos. Con menos de dos puntos no se dibuja nada.
[{x: 0, y: 20}, {x: 40, y: 0}, {x: 80, y: 40}]closed?booleanConecta último punto e inicio; una polilínea cerrada admite relleno background.
falsebackground?PaintRelleno de una polilínea cerrada. Se ignora si closed es false.
"clear"stroke?PaintColor o degradado del trazo; clear lo oculta.
HDR($env.dark ? "white" : "black")lineWidth?numberGrosor del trazo en puntos; 0 no dibuja trazo.
2lineCap?"round" | "butt" | "square"Extremos: butt corta, square prolonga en cuadrado, round redondea.
"round"lineJoin?"round" | "miter" | "bevel"Unión de segmentos: miter, round o bevel.
"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.
0trimStart?numberIntervalo visible trimStart–trimEnd dentro de 0–1. Circle/Ellipse/Arc usan ángulos.
0trimEnd?numberIntervalo visible trimStart–trimEnd dentro de 0–1. Circle/Ellipse/Arc usan ángulos.
1contentAnimation?ContentAnimationTransición de contenido opcional. interpolate requiere igual número de puntos y estado de cierre; de lo contrario se actualiza inmediatamente.
{type: "interpolate", duration: 0.25}Propiedades 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?Animation[]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 (
<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>
);
}
Animación
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtrimStarttrimEnddashPhasestrokelineWidthtransform.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 |
|---|---|
closed | false |
background | "clear" |
lineWidth | 2 |
trimStart | 0 |
trimEnd | 1 |
stroke | HDR($env.dark ? 'white' : 'black') |