
- •canvas
- •Чтобы рисовать на холсте, нужно написать определенный объем кода JavaScript. Эта задача состоит
- •Координаты холста
- •Прямые линии
- •Свойство lineWidth определяет толщину линии в пикселах. Например, следующая строка кода устанавливает толщину
- •Cвойство lineCap указывает тип концов линии. По умолчанию этому свойству присваивается значение butt
- •beginPath
- •Для заливки фигуры необходимовыбрать цвет заливки, установив значение свойства fillStyle, а потом вызвать
- •context.moveTo(250,50);
- •Прямоугольники
- •Чтобы рисовать что-то более сложное, чем линии и прямоугольники, нужно изучить следующие четыре
- •arc(x, y, radius, startAngle, endAngle, anticlockwise)
- •Три других метода рисования кривых — arcTo(), bezierCurveTo() и quadraticCurveTo() —
- •Прозрачность
- •Изображения
- •Создание нового графического объекта:
- •Теперь мы перейдём к рисованию изображения на холсте. Для этого существует функция drawImage.
- •Рисуем фрагмент изображения
- •Вставка в холст текста
- •Вместо метода fillText() можно использовать другой метод для ввода текста - strokeText(). Этот
- •Создание теней
- •Свойства для управления внешним видом теней в элементе Canvas
- •// Определение контекста рисования
- •Градиентная заливка в Canvas
- •При создании линейного градиента указываются две точки, представляющие начало и конец пути, вдоль
- •Очистка canvas
- •SVG-графика с точки зрения практического применения это, прежде всего, SVG-код в текстовом файле,
- •Атрибуты svg
- •Внедрение SVG изображений на страницу
- •Основные SVG-фигуры
- •Атрибуты простых фигур
- •Прямоугольник
- •Создание сложных фигур
- •Наиболее распространенные команды для рисования прямых линий и простых фигур (форм):
- •Команды создания кривых
- •Вставка растровых изображений
- •Вставка текста
- •Маски
- •CSS управление SVG
- •Трасформации
- •Список видов операций, которые можно задать в качестве значений атрибута transform:
- •Анимация
- •animate
- •Основные атрибуты
- •Атрибут 'restart'
- •Атрибуты set
- •animateMotion
- •animateTransform

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