
- •Московский государственный университет
- •If (canvas.GetContext){
- •Рисование прямоугольников
- •Рисование составных фигур Составные фигуры состоят из нескольких соединенных простых объектов (таких как линии, круги и т.Д.)
- •Структура программы выглядит следующим образом
- •X.BeginPath();
- •X.BeginPath();
- •X.FillRect(20,20,200,200);
- •X.FillRect(50,40,55,55);
- •Папоротник
- •Гипно-спираль
- •Вставка изображений
- •4. Вложение изображения с помощью data: url
- •Рисование изображений
- •Пример 1 использования изображения
- •Масштабирование
- •Пример 2 использования изображения
- •Разрезание изображений
- •Пример 3 использования изображения
- •Пример галереи
- •Javascript графика: Объект Image.
- •Javascript графика: src и lowsrc.
- •Изменение картинки.
- •Мультипликация в JavaScript. Мультипликация.
- •Запуск мультипликации
- •Запуск и остановка мультипликации
X.FillRect(20,20,200,200);
</script>
</body>
</html>
Можно создавать более сложные градиенты, которые изменяют цвет в нескольких точках.
<html>
<body>
<canvas id='draw' width='240' height='200' style='border:1px solid;'></canvas>
<script>
var canvas=document.getElementById("draw")
var x=canvas.getContext("2d");
/* Создаем градиент */
var grad = x.createLinearGradient(50,50,150,150);
/* Добавляем точки цветового перехода */
grad.addColorStop(0.0,'#d2006b');//Розовый цвет в начале
grad.addColorStop(0.5,'#00a779');//Бирюзовый цвет в середине
grad.addColorStop(1.0,'#ffe800');//Желтый цвет в конце
/* Устанавливаем получившийся градиент как свойство заливки */
x.fillStyle=grad;
/* Рисуем фигиру, к которой будет применен созданный градиент */
x.fillRect(20,20,190,150);
</script>
</body>
</html>
Создание теней
Метод |
Описание |
shadowOffsetX |
Смещение тени от объекта по горизонтали (может принимать отрицательные значения). |
shadowOffsetY |
Смещение тени от объекта по вертикали (может принимать отрицательные значения). |
shadowBlur |
Величина размытия тени. |
shadowColor |
Цвет тени (по умолчанию черный). |
<html>
<body>
<canvas id='draw' width='300' height='200' style='border:1px solid'></canvas>
<script type='text/javascript'>
var canvas=document.getElementById("draw")
var x=canvas.getContext("2d");
x.shadowOffsetX=3;
x.shadowOffsetY=3;
x.shadowBlur=8;
x.shadowColor='black';
x.fillStyle='#ffaa00';
X.FillRect(50,40,55,55);
</script>
</body>
</html>
Текст
Метод fillText("текст",x,y) позволяет отображать в элементе canvas произвольный текст.
<html>
<body>
<canvas id='draw' width='240' height='180' style='border:1px solid;'></canvas>
<script type='text/javascript'>
var canvas=document.getElementById("draw")
var x=canvas.getContext("2d");
x.fillText("Теперь можно отображать", 15, 40);
x.fillText("произвольный текст", 100, 70);
x.fillText("в элементе canvas.", 60, 120);
</script>
</body>
</html>
Текст отображаемый в canvas может быть оформлен с помощью свойства font.
<html>
<body>
<canvas id="draw" width="300" height="160" style="border:1px solid;"></canvas>
<script type="text/javascript">
var canvas=document.getElementById("draw")
var x=canvas.getContext("2d");
x.font='15px Verdana';
x.fillStyle='#60016d';
x.fillText("Теперь можно отображать", 10, 40);
x.font='25px Arial';
x.fillStyle='#007439';
x.fillText("произвольный текст", 10, 80);
x.fillStyle='#a67800';
x.font='20px Comic Sans MS';
x.fillText("в элементе canvas.", 50, 120);
</script>
</body>
</html>
Примеры
Дорожный знак
<html>
<body>
<canvas id="myCanvas" width="200" height="200" />
<script type='text/javascript'>
var ctx = document.getElementById("myCanvas").getContext("2d");
var width = ctx.canvas.width;
var height = ctx.canvas.height;
// Радиус и центр круга
var radius = 0.4 * width;
var cx = width / 2;
var cy = height / 2;
// Делаем путь для круга от 0 до 2PI
ctx.beginPath();
ctx.arc(cx, cy, radius, 0, Math.PI * 2);
ctx.closePath();
// Устанавливаем отрисовку с тенью
ctx.shadowBlur = 10;
ctx.shadowColor = "black";
// Устанавливаем ширину и цвет линии и отрисовываем
ctx.lineWidth = 25;
ctx.strokeStyle = "#f00";
ctx.stroke();
// Убираем тень
ctx.shadowColor = "transparent";
// Создаем радиальный градиент для заливки
var gradient = ctx.createRadialGradient(cx, cx, 0, cx, cy, radius);
gradient.addColorStop(0, "#ddd");
gradient.addColorStop(1, "#eee");
// Устанавливаем градиент и делаем заливку
ctx.fillStyle = gradient;
ctx.fill();
// Устанавливаем стили текста и центрирование
ctx.textAlign = "center";
ctx.textBaseline = "middle";
ctx.font = "bold 55px 'Segoe UI', 'Tahoma', sans-serif";
ctx.fillStyle = "#333";
// Выводим надпись
ctx.fillText("STOP", cx, cy);
</script>
</body>
</html>