Escolar Documentos
Profissional Documentos
Cultura Documentos
La Performance de Canvas
Canvas puede ser muy rpido, pero est en manos del programador que esto se
cumpla. Muchas de las optimizaciones que deben ser tenidas en cuenta y llevadas
adelante quedan tambin en responsabilidad del programador. La velocidad juega
un papel importante, y cualquier desarrollador de Canvas serio debe
familiarizarse con los conceptos bsicos de performance de grficos como
invalidations y viewports.
1
<!DOCTYPE HTML>
2
<head>
3
<style>
4
5
body {
6
margin: 0px;
7
padding: 0px;
8
}
9
10
#myCanvas {
11
border: 1px solid #9C9898;
12
}
13
14
</style>
15
<script>
16
17 window.onload = function() {
18 var canvas = document.getElementById("myCanvas");
19
var context = canvas.getContext("2d");
20
context.beginPath();
21
context.moveTo(100, 150);
22
context.lineTo(450, 50);
23
context.stroke();
24
};
25
26
</script>
27
</head>
28
<body>
29 <canvas id="myCanvas" width="578" height="200"></canvas>
30 </body>
31
</html>
Otros atributos:
lineWidth = ancho de la lnea.
strokeStyle = color de la lnea.
Paths y Curvas
Para crear un path con HTML5 Canvas, podemos conectar multiples subpaths. El
punto final de cada subpath ser el nuevo punto de contexto. Podemos usar los
mtodos lineTo(), arcTo(), quadraticCurveTo() y bezierCurveTo() para
42
</html>
Formas
Para crear una forma customizada con HTML5 Canvas, podemos crear un path y
luego cerrarlo utilizando el mtodo closePath(). Podemos usar los
mtodos lineTo(), arcTo(), quadraticTo() o bezierCurveTo() para construir
cada subpath que necesitemos.
Con la propiedad fillStyle podemos setear el color de la forma.
1
<script>
2
context.closePath();
3
</script>
1
1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<!DOCTYPE HTML>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
#myCanvas {
border: 1px solid #9C9898;
}
</style>
<script>
window.onload = function() {
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext("2d");
// comienza la figura customizada
context.beginPath();
context.moveTo(170, 80);
context.bezierCurveTo(130, 100, 130, 150, 230, 150);
context.bezierCurveTo(250, 180, 320, 180, 340, 150);
context.bezierCurveTo(420, 150, 420, 120, 390, 100);
context.bezierCurveTo(430, 40, 370, 30, 340, 50);
context.bezierCurveTo(320, 5, 250, 20, 250, 50);
context.bezierCurveTo(200, 5, 150, 20, 170, 80);
// se completa la figura customizada
context.closePath();
31
context.fillStyle = "#8ED6FF";
32
context.fill();
33
context.lineWidth = 5;
34
context.strokeStyle = "blue";
35
context.stroke();
36
};
37
</script>
38
</head>
39
<body>
40 <canvas id="myCanvas" width="578" height="200"></canvas>
41 </body>
42
</html>
Rectngulos
Para crear rectngulos podemos usar el mtodo rect(). A este lo podemos
posicionar con los parmetros x e y, y podemos setear su ancho y alto
con width y height respectivamente. La posicin es relativa al borde superior
izquierdo del rectngulo.
1
<!DOCTYPE HTML>
2
<head>
3
<style>
4
#myCanvas {
5
border: 1px solid #9C9898;
6
}
7
8
body {
9
margin: 0px;
10
padding: 0px;
11
}
12
</style>
13
14
<script>
15 window.onload = function() {
16 var canvas = document.getElementById('myCanvas');
17
var context = canvas.getContext('2d');
18
19
context.beginPath();
20
context.rect(188, 50, 200, 100);
21
context.fillStyle = '#8ED6FF';
22
context.fill();
23
context.lineWidth = 5;
24
context.strokeStyle = 'black';
25
context.stroke();
26
};
27
</script>
28
</head>
29 <body>
30 <canvas id="myCanvas" width="578" height="200"></canvas>
31
</body>
32
</html>
Crculo
Para dibujar un crculo en HTML5 Canvas podemos crear un arco usando el
mtodo arc() y definir como ngulo de comienzo 0 y el ngulo final como 2 * PI.
1 <script>
2 context.arc(x, y, radius, 0 , 2 * Math.PI, false);
3
</script>
1
1
1
<!DOCTYPE HTML>
2
<head>
3
<style>
4
5
body {
6
margin: 0px;
7
padding: 0px;
8
}
9
10
#myCanvas {
11
border: 1px solid #9C9898;
12
}
13
</style>
14
15
<script>
16 window.onload = function() {
17 var canvas = document.getElementById("myCanvas");
18
var context = canvas.getContext("2d");
19
var centerX = canvas.width / 2;
20
var centerY = canvas.height / 2;
21
var radius = 70;
22
23
context.beginPath();
24 context.arc(centerX, centerY, radius, 0, 2 * Math.PI, false);
25 context.fillStyle = "#8ED6FF";
26
context.fill();
27
context.lineWidth = 5;
28
context.strokeStyle = "black";
29
context.stroke();
30
};
31
32
</script>
33
</head>
34 <body>
35 <canvas id="myCanvas" width="578" height="200"></canvas>
36
</body>
37
</html>
Imgenes
Para dibujar una imagen usando HTML5 Canvas, podemos usar el
mtodo drawImage() que requiere un objeto imagen y un punto de destino. Este
ltimo es relativo al borde izquierdo superior de la imagen.
1
<script>
2
context.drawImage(imageObj, x, y);
3
</script>
1
<!DOCTYPE HTML>
2
<head>
3
<style>
4
body {
5
margin: 0px;
6
padding: 0px;
7
}
8
#myCanvas {
9
border: 1px solid #9C9898;
10
}
11
</style>
12
<script>
13
window.onload = function() {
14 var canvas = document.getElementById("myCanvas");
15 var context = canvas.getContext("2d");
16
var imageObj = new Image();
17
18
imageObj.onload = function() {
19
context.drawImage(imageObj, 69, 50);
20 };
imageObj.src = "http://www.html5canvastutorials.com/demos/assets/darth21
vader.jpg";
22
};
23
24
</script>
25
</head>
26 <body>
27 <canvas id="myCanvas" width="578" height="400"></canvas>
28
</body>
29
</html>
Texto: Fuentes, Tamaos y Estilos
Para setear la fuente, el tamao y el estilo de un texto en HTML5 Canvas,
podemos usar la propiedad font del contexto de canvas. El estilo puede ser
normal, negrita o cursiva. Por default, el estilo es normal.
1
<script>
2
context.font = 'italic 40px Calibri';
3
</script>
1
<!DOCTYPE HTML>
2
<html>
3
<head>
4
<style>
5
body {
6
margin: 0px;
7
padding: 0px;
8
}
9
#myCanvas {
10
border: 1px solid #9C9898;
11
}
12
</style>
13
14
<script>
15
window.onload = function() {
16 var canvas = document.getElementById("myCanvas");
17 var context = canvas.getContext("2d");
18
var x = 80;
19
var y = 110;
20
21
context.font = "60pt Calibri";
22
context.lineWidth = 3;
23
// stroke color
24
context.strokeStyle = "blue";
25
context.strokeText("Hola Mundo!", x, y);
26
};
27
28
</script>
29
</head>
30 <body>
31 <canvas id="myCanvas" width="578" height="200"></canvas>
32
</body>
33
</html>
Hasta aqu este tutorial de HTML5 pronto publicaremos mas tutoriales sobre este
tema.
Descargar Ejemplos: