Zum Inhalt springen

JavaScript Canvas-API

Einführung in die HTML Canvas API mit JavaScript

Das HTML <code><canvas></code>-Element ist ein unverzichtbares Werkzeug zum Zeichnen von Grafiken auf einer Webseite über JavaScript. Egal, ob Sie JavaScript-Anfänger sind oder Ihre Fähigkeiten verfeinern möchten, dieser Artikel führt Sie durch detaillierte Beispiele und umfassende Erklärungen, wie Sie das Canvas-Element nutzen können, um dynamische, interaktive Webinhalte zu erstellen.

Das 'canvas'-Element verstehen

Das <code><canvas></code>-Element in HTML5 erstellt eine Zeichenfläche mit fester Größe, die zum Rendern von Grafiken in Echtzeit genutzt werden kann. Es ist besonders nützlich für grafikintensive Anwendungen wie Spiele, Diagrammdarstellungen oder interaktive Animationen. Der Canvas ist ein Container für Grafiken; Sie müssen JavaScript verwenden, um die Grafiken tatsächlich zu zeichnen.

Grundlegende Canvas-Einrichtung

Um mit dem Zeichnen auf dem Canvas zu beginnen, müssen Sie zunächst ein <code><canvas></code>-Tag in Ihr HTML einfügen. Hier ist ein grundlegendes Beispiel, um loszulegen:


html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Canvas Example</title>
<style>
  canvas {
    border: 1px solid #000;
  }
</style>
</head>
<body>
<canvas id="myCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('myCanvas');
  const ctx = canvas.getContext('2d');
</script>
</body>
</html>

In dieser Einrichtung definieren wir einen Canvas-Bereich im HTML, stylen ihn mit einem einfachen Rahmen und erhalten dessen Zeichenkontext in JavaScript mit getContext('2d'). In diesem Kontext werden alle Zeichenmethoden angewendet.

Formen zeichnen

Für ein einfaches Beispiel zum Zeichnen von Formen betrachten Sie diesen Code, um ein gefülltes Rechteck zu zeichnen. Die Methode fillRect wird verwendet, die die Koordinaten der oberen linken Ecke sowie die Breite und Höhe des Rechtecks erfordert.


html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Rectangle Example</title>
<style>
  canvas {
    border: 1px solid black;
  }
</style>
</head>
<body>
<canvas id="rectangleCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('rectangleCanvas');
  const ctx = canvas.getContext('2d');
  ctx.fillStyle = '#FF0000'; // Set the fill color to red
  ctx.fillRect(20, 20, 150, 100); // Draw the rectangle
</script>
</body>
</html>

Linien erstellen

Das Zeichnen einer Linie beinhaltet das Starten eines Pfades und das Bewegen des Zeichen Cursors mit moveTo, das Erweitern des Pfades zu einem neuen Punkt mit lineTo und schließlich das Zeichnen des Pfades mit stroke, um ihn sichtbar zu machen:


html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Line Drawing Example</title>
<style>
  canvas {
    border: 1px solid black;
  }
</style>
</head>
<body>
<canvas id="lineCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('lineCanvas');
  const ctx = canvas.getContext('2d');
  ctx.beginPath(); // Start the path
  ctx.moveTo(50, 50); // Move the pen to (50, 50)
  ctx.lineTo(150, 50); // Draw a line to (150, 50)
  ctx.stroke(); // Render the line visible
</script>
</body>
</html>

Erweiterte Canvas-Operationen

Canvas-Transformationen

Transformationen wie translate, rotate und scale ermöglichen es Ihnen, das Canvas-Koordinatensystem zu ändern. Diese können sehr leistungsstark sein, um komplexe Zeichnungen zu erstellen:


html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Transformation Example</title>
<style>
  canvas {
    border: 1px solid black;
  }
</style>
</head>
<body>
<canvas id="transformCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('transformCanvas');
  const ctx = canvas.getContext('2d');
  ctx.translate(50, 50); // Move the canvas origin to (50, 50)
  ctx.rotate((Math.PI / 180) * 25); // Rotate the canvas 25 degrees
  ctx.fillStyle = 'blue'; // Set fill color to blue
  ctx.fillRect(0, 0, 100, 50); // Draw a rectangle
</script>
</body>
</html>

Animationen mit Canvas

Das Animieren mit Canvas beinhaltet typischerweise das Erstellen einer Funktion, die die Canvas-Zeichnung wiederholt aktualisiert, indem requestAnimationFrame verwendet wird:


html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Animation Example</title>
<style>
  canvas {
    border: 1px solid black;
  }
</style>
</head>
<body>
<canvas id="animationCanvas" width="200" height="200"></canvas>
<script>
  const canvas = document.getElementById('animationCanvas');
  const ctx = canvas.getContext('2d');
  let x = 0; // Starting position
  function drawFrame() {
    ctx.clearRect(0, 0, canvas.width, canvas.height); // Clear the canvas for the new frame
    ctx.fillStyle = 'green'; // Set the fill color to green
    ctx.fillRect(x, 20, 50, 50); // Draw a moving rectangle
    x++; // Increment the horizontal position
    if (x > canvas.width) {
      x = 0;
    }
    requestAnimationFrame(drawFrame); // Continue the animation
  }
  drawFrame();
</script>
</body>
</html>

Fazit

Das HTML <code><canvas></code>-Element bietet Webentwicklern einen großen Spielplatz, um ihre Kreativität auszudrücken und dynamische Grafiken und Animationen zu implementieren. Durch die Nutzung von JavaScript können Entwickler komplexe Designs und interaktive Erfahrungen direkt im Browser erstellen, was Canvas zu einem unschätzbaren Werkzeug für Anwendungen macht, die von einfachen Datenvisualisierungen bis hin zu komplexen Spielen und interaktiven Lernwerkzeugen reichen. Wie wir an diesen Beispielen gesehen haben, sind die möglichen Anwendungen von Canvas nur durch die eigene Vorstellungskraft und technische Fähigkeit begrenzt und bieten ein leistungsstarkes Medium, um Webinhalte und Benutzerinteraktion zu verbessern.

Praxis

Was können Sie mit dem Canvas-Element in JavaScript gemäß den Inhalten auf w3docs.com tun?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.