Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratorny_praktikum_2.doc
Скачиваний:
19
Добавлен:
09.04.2015
Размер:
556.03 Кб
Скачать

X.BeginPath();

x.arc(30,30,20,x1,x2);

x.moveTo(100,100);

x.rect(70,50,70,70);

x.fill();

</script>

</body>

</html>

Для раскрашивания нарисованных в canvas фигур предусмотрены свойства: fillStyle и strokeStyle. Свойство fillStyle используется для применения цвета к закрашенным, а strokeStyle для применения цвета к не закрашенным фигурам.

<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.fillStyle="green";

x.fillRect(10,40,65,65);

x.strokeStyle="#FF45FF";

x.strokeRect(100,40,65,65);

x.fillStyle="rgb(255,73,73)";

x.fillRect(190,40,65,65);

</script>

</body>

</html>

Как видно из предыдущего примера цвета могут задаются так же как для шрифта.

В canvas цвет может задавать с помощью rgba (задается цвет и прозрачность элемента).

<html>

<body>

<canvas id='draw' width='270' height='150' style='border:1px solid;'></canvas>

<script type='text/javascript'>

var canvas=document.getElementById("draw")

var x=canvas.getContext("2d");

x.fillStyle="rgba(0,0,0,0.5)";

x.fillRect(10,40,65,65);

x.fillStyle="rgba(0,0,0,0.1)";

x.fillRect(100,40,65,65);

x.fillStyle="rgba(0,0,0,1)";

x.fillRect(190,40,65,65);

</script>

</body>

</html>

Здесь используются две знакомые нам функции: fillStyle - задает цвет и прозрачность кисти рисования и fillRect - рисует прямоугольник с заданными координатами и размерами.

Линии

Перемещение пера в точку с координатами x,y без прорисовки линии выполняется методом moveTo(x, y).

Перемещение пера в точку с координатами x,y с прорисовкой линии выполняется методом lineTo(x, y).

В HTML имеются несколько свойств для оформления линий нарисованных с помощью метода lineTo(), это lineWidth, lineCap, lineJoin.

С помощью свойства lineWidth можно установить ширину линии (по умолчанию линии имеют ширину 1 пиксель)

<html>

<body>

<canvas id='draw' width='260' height='120' style='border:1px solid; padding:10px;'></canvas>

<script type='text/javascript'>

var canvas=document.getElementById("draw")

var x=canvas.getContext("2d");

//Рисуем линию толщиной 3 пикселя

X.BeginPath();

x.moveTo(10,10);

x.lineWidth=3;

x.lineTo(200,10);

x.stroke();

//Рисуем линию толщиной 10 пикселей

x.beginPath();

x.moveTo(10,40);

x.lineWidth=10;

x.lineTo(200,40);

x.stroke();

//Рисуем линию толщиной 1 пиксель

x.beginPath();

x.moveTo(10,70);

x.lineWidth=1;

x.lineTo(200,70);

x.stroke();

//Рисуем линию толщиной 6 пикселей

x.beginPath();

x.moveTo(10,100);

x.lineWidth=6;

x.lineTo(200,100);

x.stroke();

</script>

</body>

</html>

С помощью свойства lineCap можно оформлять кончики линии

<html>

<body>

<canvas id='draw' width='230' height='90' style='border:1px solid;padding:20px'></canvas>

<script type='text/javascript'>

var canvas=document.getElementById("draw")

var x=canvas.getContext("2d");

//Нарисуем линию с закругленным кончиком

x.beginPath()

x.moveTo(10,10);

x.lineWidth=10;

x.lineCap='round';

x.lineTo(200,10);

x.stroke();

//Нарисуем линию с квадратным кончиком

x.beginPath();

x.moveTo(10,40);

x.lineWidth=10;

x.lineCap='square';

x.lineTo(200,40);

x.stroke();

//Нарисуем линию со стандартным кончиком

x.beginPath();

x.moveTo(10,70);

x.lineWidth=10;

x.lineCap='butt';

x.lineTo(200,70);

x.stroke();

</script>

</body>

</html>

С помощью свойства lineJoin можно сглаживать стыки двух линий.

<html>

<body>

<canvas id='draw' width='240' height='200' style='border:1px solid;padding:20px;'></canvas>

<script type='text/javascript'>

var canvas=document.getElementById("draw")

var x=canvas.getContext("2d");

//Сгладим стыки линий

x.beginPath()

x.moveTo(10,10);

x.lineWidth=15;

x.lineJoin='round';

x.lineTo(50,50);

x.lineTo(100,10);

x.lineTo(170,80);

x.lineTo(210,40);

x.stroke();

//Нарисуем стыки не сглаженными (значение по умолчанию)

x.beginPath()

x.moveTo(10,100);

x.lineWidth=15;

x.lineJoin='miter';

x.lineTo(50,140);

x.lineTo(100,100);

x.lineTo(170,170);

x.lineTo(210,130);

x.stroke();

</script>

</body>

</html>

Градиентная заливка

С помощью метода createLinearGradient(x1,y1,x2,y2) можно создать линейный градиент. Параметры x1 и y1 устанавливают координаты начальной, а x2 и y2 конечной точки градиента.

После того, как градиент создан необходимо указать цвета перехода. Это можно сделать с помощью метода addColorStop(точка,цвет).

Например, если нужно создать градиент, который плавно изменяет цвет с черного на белый необходимо установить черный цвет в точке 0 (так условно начальная точка градиента) и белый цвет в точке 1 (конечная точка градиента).

<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(0,0,0,150);//начало и конец

/* Добавляем точки цветового перехода */

grad.addColorStop(0.0,'black');

grad.addColorStop(1.0,'white');

/* Устанавливаем получившийся градиент как свойство заливки */

x.fillStyle=grad;

/* Рисуем фигиру, к которой будет применен созданный градиент */

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]