Přechody SVG – lineární
Přechody SVG
Gradient je plynulý přechod z jedné barvy do druhé. Kromě toho lze na stejný prvek použít několik barevných přechodů.
V SVG existují dva hlavní typy přechodů:
- Lineární
- Radiální
SVG Lineární Gradient - <linearGradient>
Prvek <linearGradient> se používá k definování lineárního přechodu.
Element <linearGradient> musí být vnořen do značky <defs>. Tag <defs> je zkratka pro definice a obsahuje definici speciálních prvků (jako jsou přechody).
Lineární přechody lze definovat jako horizontální, vertikální nebo úhlové přechody:
- Vodorovné přechody se vytvoří, když jsou y1 a y2 stejné a x1 a x2 se liší
- Vertikální gradienty se vytvoří, když jsou x1 a x2 stejné a y1 a y2 se liší
- Úhlové přechody se vytvoří, když se x1 a x2 liší a y1 a y2 se liší
Příklad 1
Definujte elipsu s vodorovným lineárním přechodem od žluté k červené:
Zde je kód SVG:
Příklad
<svg height="150" width="400">
<defs>
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55"
fill="url(#grad1)" />
</svg>
Vysvětlení kódu:
- Atribut id tagu <linearGradient> definuje jedinečný název přechodu
- Atributy x1, x2, y1,y2 tagu <linearGradient> definují počáteční a koncovou polohu přechodu
- Barevný rozsah pro přechod může být složen ze dvou nebo více barev. Každá barva je specifikována tagem <stop>. Atribut offset se používá k definování, kde začíná a končí barva přechodu
- Atribut výplně spojuje prvek elipsy s přechodem
Příklad 2
Definujte elipsu se svislým lineárním přechodem od žluté k červené:
Zde je kód SVG:
Příklad
<svg height="150" width="400">
<defs>
<linearGradient id="grad2" x1="0%" y1="0%" x2="0%" y2="100%">
<stop offset="0%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55" fill="url(#grad2)" />
</svg>
Příklad 3
Definujte elipsu s vodorovným lineárním přechodem od žluté po červenou a přidejte text do elipsy:
Zde je kód SVG:
Příklad
<svg height="150" width="400">
<defs>
<linearGradient id="grad3" x1="0%" y1="0%" x2="100%" y2="0%">
<stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1" />
<stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1" />
</linearGradient>
</defs>
<ellipse cx="200" cy="70" rx="85" ry="55"
fill="url(#grad3)" />
<text fill="#ffffff" font-size="45" font-family="Verdana" x="150" y="86">
SVG</text>
</svg>
Vysvětlení kódu:
- Prvek <text> se používá k přidání textu