Ein HTML-Dokument mit canvas-Element
Wir erstellen wir eine einfache HTML-Seite
die wir als Datei speichern.
Das ist unser Ausgangspunkt für die folgenden Beispiele.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Canvas-Experimente</title>
<style>
/* hier haben CSS-Styles Platz */
canvas { border: 1pt solid red; }
</style>
<script>
'use strict';
document.onreadystatechange = function () {
if (document.readyState == "complete") {
// hier kommen unsere JavaScript-Anweisungen hin
}
}
</script>
</head>
<body>
<!-- HTML-Code -->
<h3>Canvas</h3>
<canvas id="leinwand" width="200" height="200"></canvas>
</body>
Im Browser geöffnet sehen wir die Überschrift und entsprechend dem Styling
die Canvas als leeres Quadrat, rot umrandet.
Erklärungen zum Dokument
HTML
Der Browser verwendet das Element
canvas
als Zeichenfläche.
Über die Attribute
width
und
height
bestimmen wir die Abmessungen der Grafik in darzustellenden Pixeln.
<canvas id="leinwand" width="200" height="120">
<div>
Dieser Inhalt wird nur dann angezeigt,
wenn der Browser canvas nicht unterstützt.
</div>
</canvas>
Die Fläche wird jetzt bereits vom Browser freigehalten.
CSS
Mit CSS kann das Element
canvas
gestylt werden, womit in unseren
Beispielen wegen der besseren Sichtbarkeit ein roter Rahmen eingestellt
sowie ein weißer Hintergrund gesetzt wird.
<style>
#leinwand {
border: 1pt solid red;
background-color: #fff;
}
</style>
Die Fläche beinhaltet bereits jetzt eine leere Grafik. Versucht man, diese
über die rechte Maustaste zu speichern, dann erhält man eine Bilddatei
im PNG-Format.
Die Vorbereitungen wären damit abgeschlossen,
das eigentliche Erstellen der Grafik geschieht mithilfe von JavaScript.
JavaScript
Zunächst greifen wir mit
getElementById
auf das Canvas-Element zu
und erhalten ein recht komplexes Objekt, im Beispiel in der Variablen
myCanvas
.
Das Element enthält die Methode
getContext()
, von der wir
einen sogenannten Zeichenkontext erhalten. Im Beispiel ist es die Variable
Ctx2d
.
// zuerst das canvas-Element finden
let myCanvas = document.getElementById('leinwand');
// gibt es die Methode dann existiert die Canvas
if(myCanvas.getContext)
{
// Jetzt Zeichenkontext holen
let Ctx2d = myCanvas.getContext('2d');
// ... hier folgt die eigentliche Grafik-Programmierung ...
}
Das Argument '2d'
bei getContext()
bewirkt, dass ein CanvasRenderingContext2D
-Objekt
zurückgegeben wird; eine API, mit dem 2D-Grafiken erstellt werden können.
Dieser Zeichenkontext wird von den meisten Browsern unterstützt und
genau damit befassen wir uns in diesem Beitrag.