Canvas - Рефераты

advertisement
Реферат на тему:
Canvas (HTML)
План:
Введение



1 История
2 Ситуация сегодня
3 Примеры
Примечания
Введение
Canvas (англ. canvas — «холст») — элемент HTML 5, который предназначен для создания
растрового изображения при помощи JavaScript.
1. История
Впервые элемент canvas был представлен компанией Apple в движке WebKit для Mac OS
X с целью последующего его использования в приложениях Dashboard и Safari.
Поддержка canvas в Gecko появилась в версии 1.8 (версия 1.5 браузера Firefox), в Presto с
версии 9.0 веб-браузера Opera. В Internet Explorer 9 поддержка canvas реализована только
начиная с версии Platform Preview 3. Ранее ситуацию с отсутствием canvas в IE исправила
компания Google, выпустившая собственное расширение, написанное на JavaScript, под
названием ExplorerCanvas.
2. Ситуация сегодня
На сегодняшний день canvas чаще используется для построения графиков, простой
анимации и игр в веб-браузерах. Группа WHATWG предлагает использовать canvas как
стандарт для создания графики в новых поколениях веб-приложений.[1]
Организация Mozilla Foundation ведёт проект под названием Canvas 3D[2], целью которого
является добавить низкоуровневую поддержку графических ускорителей для отображения
трёхмерных изображений через HTML элемент canvas.
3. Примеры
Код идущий далее создаёт на странице canvas элемент:
<html>
<head>
<title>Пример использования</title>
</head>
<body>
<canvas id='example'>
Этот текст отобразится если браузер не поддерживает html5 элемент
canvas.
</canvas>
</body>
</html>
Использование JavaScript, для того что бы нарисовать окружность:
<html>
<head>
<title>circle</title>
</head>
<body>
<canvas id='example'>Обновите браузер</canvas>
<script type="text/javascript">
var canvas = document.getElementById("example");
var context = canvas.getContext("2d");
function drawCircle(x, y, r) {
context.arc(x, y, r, 0, 2 * Math.PI, false);
}
context.beginPath();
drawCircle(150, 75, 50);
context.lineWidth = 15;
context.strokeStyle = "#0f0";
context.stroke();
</script>
</body>
</html>
Отрисуем на canvas обдуваемое дерево Пифагора:
<html>
<head>
<title>Дерево Пифагора</title>
<script type="text/javascript">
// функция рисует под углом линию из указанной точки длинной ln
function drawLine(x, y, ln, angle) {
context.moveTo(x, y);
context.lineTo(Math.round(x + ln * Math.cos(angle)), Math.round(y ln * Math.sin(angle)));
}
// Функция рисует дерево
function drawTree(x, y, ln, minLn, angle) {
if (ln > minLn) {
ln = ln * 0.75;
drawLine(x, y, ln, angle);
x = Math.round(x + ln * Math.cos(angle));
y = Math.round(y - ln * Math.sin(angle));
drawTree(x, y, ln, minLn, angle + Math.PI/4);
drawTree(x, y, ln, minLn, angle - Math.PI/6);
// если поставить угол Math.PI/4 то выйдет классическое дерево
}
}
// Инициализация переменных
function init() {
var canvas = document.getElementById("tree");
context = canvas.getContext("2d");
canvas.width = 480; // Ширина холста
canvas.height = 320; // высота холста
var x = canvas.width / 2;
var y = canvas.height;
var ln = 120; // начальная длина линии
var minLn = 4; // минимальная длина до которой рисуются линии
context.fillStyle = "#ddf"; // цвет фона
context.strokeStyle = "#020"; //цвет линий
context.fillRect(0, 0, canvas.width, canvas.height);
context.lineWidth = 2; // ширина линий
context.beginPath();
drawTree(x, y, ln, minLn, Math.PI / 2);
context.stroke();
}
</script>
</head>
<body onload="init();">
<canvas id="tree"></canvas>
</body>
</html>
Примечания
1. Спецификация от WHATWG - www.whatwg.org/specs/web-apps/currentwork/#canvas
2. Mozilla Canvas 3D
Download