Graphics op je website I: <canvas>-tag

Dit verhaal gaat, zoals de titel zegt, over graphics die je maakt met de tag <canvas>. Deze tag maakt deel uit van de HTML5-standaard. Het bijzondere van de figuren die je met <canvas> maakt, is dat ze door de browser worden opgebouwd op basis van programma-code. Voor eenvoudige twee-dimensionale figuren gaat dat goed met JavaScript. Voor complexe 2D- en 3D-figuren kun je beter een bibliotheek gebruiken zoals Three.JS. Als je browser dat aan kan, is WebGL ook mogelijk, maar dat is moeilijk programmeren.

De <canvas>-tag is eigenlijk een container, die een script bevat. De code wordt als volgt opgezet:

<canvas id=""Mijn_Canvas" width="300" height="200"
 style="border:1px solid black">
  <script type="text/javascript">
    var c = document.getElementById("Mijn_Canvas");
    var ctx = c.getContext("2d");
    .
    ... Hier staan de opdrachten om de tekening te maken
    .
  </script>
  De tag <canvas> wordt door uw browser niet ondersteund.
</canvas>

Zoals je ziet heeft de <canvas>-tag de attributen id, width en height. Deze zijn alle drie verplicht. Eventueel kun je nog een style-attribuut opgeven. Met width en height geef je de afmetingen op, in pixels. Desgewenst kun je ze in het style-attribuut zetten, zodat je andere eenheden dan pixels kunt gebruiken.

Het is mogelijk om de afmetingen van het canvas aan te passen. Dat doe je met JavaScript. Als je dat doet wordt het canvas leeggemaakt. Je moet na wijziging van width of height de afbeelding op het canvas opnieuw opbouwen.

De eerste twee regels JavaScript code zijn altijd nodig. Het id heb je nodig voor de communicatie met JavaScript.
Eerst maak je een variabele die de het canvas-object bevat, zodat je het kunt benaderen. Dat gaat via ket id. De variable is hier: c.
Daarna sla je de context van het canvas-object op in een tweede variabele, hier is dat ctx. Voor het maken van een platte afbeelding gebruik je de parameter "2d". Dit wordt door alle grote browsers ondersteund.
Als je WebGL wilt inzetten gebruik je "webgl" (of "experimental-webgl", voor Internet Explorer). Daarmee maak je een omgeving waarmee je 3D-graphics kunt maken. Dat werkt alleen bij browsers die beschikken over WebGL versie 1.0 (OpenGL ES 2.0).

Om in het canvas te tekenen gebruik je methodes van ctx, bijvoorbeeld:
met ctx.rect(20,20,150,100) teken je een rechthoek.

 
terug

html-425; Laatste wijziging: 22 april 2020