Path
Taşıma, çizgi, dörtlü, kübik, yay ve kapatma gibi komutlarla yollar oluşturun. İşaretçileri, eğrileri ve birleştirilmiş ana hatları özelleştirmek ve dolgu kuralları ile konturları ayarlamak için uygundur.
Örnek
function main() {
return (
<Path
commands={[
{ op: 'move', x: 10, y: 80 },
{ op: 'line', x: 60, y: 10 },
{ op: 'line', x: 110, y: 80 },
{ op: 'close' },
]}
background={$env.accent}
stroke={$env.foreground}
lineWidth={2}
/>
);
}
Kullanım
- commands sırayla işler: move başlar, line/quad/cubic/arc ekler, close kapatır. arc x/y merkezidir. evenOdd iç içe delikler sağlar. Başa dönmek close değildir.
- contentAnimation yazı, resim ve yapısal veriyi geçirir. interpolate için Polyline nokta sayısı/closed, Path komutları veya grafik yapısı eşleşmelidir. Yapı değişirse anında güncellenir.
Özellikler
commandsReadonlyArray<PathCommand>Yerel yol komutları, punto cinsinden. Boş dizi çizim yapmaz.
[{op: "move", x: 0, y: 0}, {op: "line", x: 100, y: 80}]fillRule?"nonZero" | "evenOdd"Yol dolgu kuralı: nonZero veya evenOdd.
"nonZero"background?PaintYolun iç dolgusu. Varsayılan olarak saydamdır.
"clear"stroke?PaintÇizgi rengi veya gradyanı; clear gizler.
HDR($env.dark ? "white" : "black")lineWidth?numberÇizgi kalınlığı, punto; 0 çizmez.
2lineCap?"round" | "butt" | "square"Çizgi ucu: butt keser, square kare uzatır, round yuvarlar.
"round"lineJoin?"round" | "miter" | "bevel"Birleşim şekli: miter, round veya bevel.
"round"dash?number[]Çizgi ve boşluk uzunlukları sırayla, punto; boş dizi düz çizgidir.
[]dashPhase?numberKesik çizgi desen kayması, punto.
0trimStart?numbertrimStart–trimEnd görünür yol aralığı 0–1. Circle/Ellipse/Arc açı kullanır.
0trimEnd?numbertrimStart–trimEnd görünür yol aralığı 0–1. Circle/Ellipse/Arc açı kullanır.
1contentAnimation?ContentAnimationİsteğe bağlı içerik geçişi. interpolate aynı komut sayısını ve işlem sırasını gerektirir; aksi halde hemen güncellenir.
{type: "interpolate", duration: 0.25}Ortak özellikler
width?number | "auto" | "fill"Punto cinsinden genişlik, otomatik boyut veya üst alanı doldurma.
"fill"height?number | "auto" | "fill"Punto cinsinden yükseklik, otomatik boyut veya üst alanı doldurma.
"fill"x?numberGörsel kaydırma, punto: x sağa, y aşağı. Yerleşimde ayrılan alan değişmez.
0y?numberGörsel kaydırma, punto: x sağa, y aşağı. Yerleşimde ayrılan alan değişmez.
0transform?ViewTransformYerleşimi değiştirmeyen bütünsel dönüşüm. Kaydırma punto, dönüş/eğim derece, ölçek 1 değişmez, dayanak 0–1.
{rotation: 0}opacity?numberTüm View opaklığı: 0 saydam, 1 opak.
1clipped?booleanView sınırlarını aşan çizimi kırpar.
falseclip?"rectangle" | "ellipse"Kırpma şekli rectangle veya ellipse; Material için false kapatır.
"rectangle"mask?View | nullAlfa maskesi View öğesi. Düzeni etkilemeden ortalanır; null maskeyi devre dışı bırakır.
<Circle width="fill" height="fill" background="white"/>zIndex?numberKardeşler arasında çizim sırası; büyük değer öndedir.
0blur?numberBulanıklık yarıçapı, punto; 0 kapatır.
4innerShadow?DrawingEffectEfekt rengi, opaklığı, bulanıklık yarıçapı ve x/y kayması; uzaklıklar punto.
{color: HDR("black"), opacity: 0.5, radius: 4, x: 0, y: 2}glow?DrawingEffectEfekt rengi, opaklığı, bulanıklık yarıçapı ve x/y kayması; uzaklıklar punto.
{color: HDR("cyan"), radius: 8, opacity: 0.8}shadowColor?ColorDış gölge rengi.
HDR("black")shadowOpacity?numberGölge opaklığı 0–1; 0 gizler.
0shadowRadius?numberDış gölge bulanıklık yarıçapı, punto.
4shadowX?numberGölge kayması, punto: x sağa, y aşağı.
0shadowY?numberGölge kayması, punto: x sağa, y aşağı.
2animations?Animation[]Özellik değişimini canlandırır. duration/delay saniye; from/to uçlar; repeat/autoreverse tekrar, wrap dönem.
[{property: "opacity", duration: 0.25, curve: "easeInOut"}]key?string | numberKardeş öğeler arasında kararlı kimlik.
Pratik örnek
function main() {
return (
<Path
width={140}
height={100}
fillRule="evenOdd"
background={$env.accent}
commands={[
{ op: 'move', x: 0, y: 0 },
{ op: 'line', x: 140, y: 0 },
{ op: 'line', x: 140, y: 100 },
{ op: 'line', x: 0, y: 100 },
{ op: 'close' },
{ op: 'move', x: 35, y: 25 },
{ op: 'line', x: 105, y: 25 },
{ op: 'line', x: 105, y: 75 },
{ op: 'line', x: 35, y: 75 },
{ op: 'close' },
]}
/>
);
}
Animasyon
widthheightxyopacitybackgroundblurshadowColorshadowOpacityshadowRadiusshadowXshadowYtrimStarttrimEnddashPhasestrokelineWidthtransform.translateXtransform.translateYtransform.scaleXtransform.scaleYtransform.rotationtransform.skewXtransform.skewYtransform.anchorXtransform.anchorYAtlandığında
Tablo uygulamada doğrulanmış atlama davranışıdır; örnekler varsayılan değildir. Sabit sonuç için açık değer kullanın; bağlama bağlı boyut ve tema renkleri sabit sayı değildir.
| Özellikler | Atlandığında |
|---|---|
commands | [] |
fillRule | "nonZero" |
background | "clear" |
lineWidth | 2 |
stroke | HDR($env.dark ? 'white' : 'black') |