SVG (2)

text
W SGV poza obrazami może istnieć także tekst. Określa się go załomocą znacznika text, także on posiada atrybuty x i y. Kolor tekstu definiuje się za pomocą atrybutu FILL lub styli kaskadowych. Mogą być one wpisane w znacznik lub przyjąć każdą z trzech form w których mogą występować.
tspan
Znacznik tspan oferuje duże możliwości formatowania tekstu. Można dzięki niemu ustalić położenie pojedynczych liter. Ma to następującą postać:
<text style="fill:red" x="20" y="1cm">
To jest znacznik tekst, a poniżej
<tspan x="20px 30px 50px 70px 80px" y="3cm">
tspan
</tspan>
</text>

Powyższy fragment dokumentu wyświetli nam napis "To jest znacznik text, a poniżej" , a poniżej napis "tspan" gdzie pierwsza literka będzie oddalona od brzegu dokumentu o 20px, druga o 10 od pierwszej, następna 20 od poprzedniej, kolejna tak samo, ostatnia znowu o dziesięć. Tak więc uzyskamy ciekawy efekt. Możemy oczywiście wpisać styl za pomocą atrybutu style, np. większą cześć tekstu zabarwić na czerwono, a mniejszą na niebiesko.

Animacje kolorami w SVG deklaruje się za pomocą elementu <animationColor>.
Animacja kolorami.
Można animować kolorami przy użyciu elementu <animateColor> na elemencie SVG.
Przykład.

<svg xml:space="preserve" width="4in" height="3in" ;>
<g id="kolo">
<circle style="fill:blue;stroke:red;" cx="100" cy="100" r="100">
<animateColor attributeName="fill" attributeType="CSS" values="red;blue;yellow;green;red"
dur="10s" repeatCount="indefinite"/>
</circle>
</g>
</svg>
Atrybut attributeName określa, jaka właściwość lub atrybut ma być animowany. Atrybut attributeType może mieć jedną z tych wartości "CSS", "XML" lub "auto" (domyślne ustawienie). Teraz animowany element wie co ma być animowane ( właściwość fill obiektu "kolo").
Właściwości i wartości atrybutów mogą mieć następujące wartości:
from
określa początkową wartość animacji
to
określa końcową wartość animacji
by
określa względną pośrednią wartość animacji
values
lista wartości rozdzielona przecinkami
W naszym przypadku właściwość fill jest animowana poprzez wartości koloru, od czerwonej poprzez niebieską, żółtą, zieloną i wraca do czerwonego. Na końcu atrybuty dur i repeatCount kontrolują czas animacji. Całkowity czas trwania animacji zostaje określony przez dur , w tym przypadku ma 10 sekund. Liczbę powtórzeń animacji zostaje określona przez atrybut repeatCount. Poprzez ustawienie wartości repeatCount na "indefinite", animacja bedzie powtarzana w nieskończoność.

W SVG wyróżniamy dwa rodzaje gradietów:linear gradients (liniowe) i radial gradiets (radialne). Gradiety umieszcza się pomiędzy parą znaczników <def> i </def>. Gradiety służą do stopniowego przechodzenia z jednego koloru w drugi. Odnoszą się do atrybutów STROKE i FILL.
Przykład pochodzi z przykłady ze strony W3C.
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG December 1999//EN"
"http://www.w3.org/Graphics/SVG/SVG-19991203.dtd">
<svg width="4in" height="3in">
<desc>Linear gradient example
</desc>
<g>
<defs>
<linearGradient id="MyGradient">
<stop offset="0%" style="color:#F60"/>
<stop offset="70%" style="color:#FF6"/>
</linearGradient>
</defs>
<rect style="fill: url(#MyGradient)" width="20" height="15.8"/>
</g>
</svg>

W tym o to gradiecie definiowane jest przejście z koloru F60 do FF6. Póżniej jest ono wywoływane w prostokącie (rect) jako kolor wypełnienienia. Atrybut offset określ w jakim stopni ma zajść przejście z jednego koloru do drugiego. Za pomocą atrybutu id zawartego w znaczniku <linearGradient> podaje się nazwę gradietu. W znaczniku <rect/> dodane zostało odwołanie do gradietu za pomocą wartośći url, po której następuje w nawiasie nazwa gradietu. Nazwa gradietu musi zostać poprzedzona #. Maksymalną wartością atrybut offswt jest 100%, a minimalną 0%. Początek i konic gradietu muszą zostać zdefiniowane. Granica użytego w gradiecie koloru musi zostać zdefiniowana w "stop" elemencie. Element końcowy jest '"dzieckiem" gradietu liniowego i radialnego. Poniżej jest pokazany przykład z przykładu ze strony W3
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG December 1999//EN"
"http://www.w3.org/Graphics/SVG/SVG-19991203.dtd">
<svg width="4in" height="3in">
<desc>Radial gradient example with three gradient stops
</desc>
<g>
<defs>
<radialGradient id="MyGradient">
<stop offset="0%" style="color:white"/>
<stop offset="50%" style="color:red"/>
<stop offset="100%" style="color:black"/>
</radialGradient>
</defs>
<circle style="fill: url(#MyGradient)" r="42"/>
</g>
</svg>

Jak można było zauważyćjest to przykład gradietu radialnego. Pierwszy atrybut określ, że przejście zaczyna się od koloru białego, później w przechodzi do niepełnego czerwonego, aby przejść do czarnego.

  Copyright 2001 at-online. Wszelkie prawa zastrzeżone.