Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Таранова / Лекция-9canvas_anim_SVG.pptx
Скачиваний:
129
Добавлен:
19.05.2015
Размер:
1.06 Mб
Скачать

Маски

Маска — это графический объект, накладываемый на другой так, чтобы перекрываемая маской часть была видна, а все остальное — нет. Это мощный инструмент для создания комбинированных изображений (коллажей), имеющийся во всех серьезных графических редакторах. Маску можно создать посредством тегов <mask> и <clipPath>.

<svg

xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="400" height="500">

<defs>

<mask id="mymask">

<circle cx="100" cy="120" r="80" fill="white"/> </mask>

</defs>

<image xlink:href="e_house.jpg" mask="url(#mymask)"

x="0" y="0" width="320px" height="256px"/> </svg>

CSS управление SVG

Определения стилевых параметров имеют такой же синтаксис, что и применительно к (X)HTML-документам: имя и значения параметра разделяют двоеточием, а сами определения различных параметров — точкой с запятой.

<rect x="50" y="30” width="100" height="50" style="fill:red; stroke:blue; stroke-width:3px" />

Правила стилей можно оформить отдельным блоком кода, вложенным в дескриптор <! [CDATA[ … ]]>, который, в свою очередь, вложен в контейнер <style>.

В качестве элементарных селекторов правил CSS допустимы имена тегов, значения атрибутов id, а также имена классов. Связать элемент с набором стилевых параметров, селектором которого является имя класса, позволяет атрибут class.

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="300" height="250" >

<title>Применение CSS</title>

<style type="text/css"> <![CDATA[

#myrect { fill:#00ffff;

stroke:blue; stroke-width:3px

}

]]>

</style>

<rect id="myrect" x="50" y="30" width="100" height="50" /> </svg>

Трасформации

Трансформации — это геометрические преобразования объектов, такие как перемещение, поворот, масштабирование и др.

Список видов операций, которые можно задать в качестве значений атрибута transform:

translate(x,y) — перенос в точку с горизонтальной координатой x и вертикальной координатой y;

rotate(угол,x,y) — поворот на заданный угол в градусах; положительным значениям угла соответствует поворот по часовой стрелке, а отрицательным — против; необязательные параметры x и y, задают еще и перемещение (перенос);

skewX(угол), skewY(угол) — наклон соответственно вдоль горизонтальной и вертикальной оси на заданный угол; знак параметра указывает на направление наклона;

scale(kx,ky) — масштабирование; параметры kx и ky задают коэффициенты масштабирования по горизонтали и вертикали; значениям больше единицы соответствует увеличение, значениям меньше единицы — уменьшение, значению, равному единице, — сохранение исходных размеров; есликоэффициенты отрицательные, то происходит отражение объекта относительно осей координат;

matrix(a,b,c,d,e,f) — трансформация посредством матрицы; позволяет осуществить все перечисленные ранее преобразования, как по отдельности, так и в композиции.

<defs>

<image id="myimage" xlink:href="1246541951-krasivye-kotjata-37- foto_AddFun.ru_18.jpg" x="0" y="20" width="100" height="142"/>

</defs>

<use xlink:href="#myimage"/>

<use xlink:href="#myimage" transform="scale(-1,1) translate(- 200,0)"/>

<use xlink:href="#myimage" transform="scale(1,-1) translate(0,- 275)"/>

<use xlink:href="#myimage" transform="scale(-1,-1) translate(-200,- 276)"/>

<use xlink:href="#myimage"

 

fill="#808080"

te(150, 0)" />

<use

translate(300,-

80)"/>

 

Анимация

Графика SVG может быть анимирована с помощью элементов анимации. Эти элементы были первоначально определены в спецификации анимации SMIL к ним относятся:

<animate> - позволяет задать анимацию для скалярных атрибутов и свойств на определенный промежуток времени;

<set> - является удобным сокращением для анимации, с помощью которого можно присваивать значения анимации нечисловым атрибутам и свойствам, таким как свойства видимости;

<animateMotion> - передвигает элемент вдоль траектории движения;

animate

Элемент <animate> содержит следующие атрибуты:

attributeName: здесь определяется атрибут, который будет участвовать в анимации.

from: опциональный атрибут. Определяет стартовое значение, по умолчанию используется текущее значение.

to: данный атрибут определяет направление анимации. В зависимости от заданного в атрибуте attributeName значения результат может различаться. В приведенном примере будет изменяться высота элемента.

dur: определяется длительность анимации. Значение нужно задавать в формате Clock Value Syntax. Например, 02:33 соответствует 2 минутам и 33 секундам, а 3h соответствует 3 часам. Для нашего примера мы определяем длительность анимации в 3 секунды.

fill

<circle r="100" cx="100" cy="100" fill="slategrey">

<animate attributeName="r" from="0" to="100" dur="3s"/>

</circle>

Перемещение

<rect x="0" y="0" width="200" height="200" fill="slategrey">

<animate attributeName="x" from="0" to="200" dur="3s" fill="freeze"/>

</rect>

Соседние файлы в папке Таранова