Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

CanvasRenderingContext2D: lineJoin-Eigenschaft

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Juli 2015⁩.

Die CanvasRenderingContext2D.lineJoin-Eigenschaft der Canvas 2D API bestimmt die Form, die verwendet wird, um zwei Liniensegmente zu verbinden, wo sie sich treffen.

Diese Eigenschaft hat keine Wirkung, wenn zwei verbundene Segmente in dieselbe Richtung weisen, da in diesem Fall kein Verbindungsbereich hinzugefügt wird. Degenerierte Segmente mit einer Länge von null (d.h. mit allen Endpunkten und Kontrollpunkten an genau derselben Position) werden ebenfalls ignoriert.

Hinweis: Linien können mit den Methoden stroke(), strokeRect() und strokeText() gezeichnet werden.

Wert

Es gibt drei mögliche Werte für diese Eigenschaft: "round", "bevel" und "miter". Der Standardwert ist "miter".

Drei horizontale Zickzacklinien mit den Werten rund, abgeschrägt und Gehrung, jeweils von oben nach unten gezeigt.

"round"

Rundet die Ecken einer Form ab, indem ein zusätzlicher Sektor eines Kreises gefüllt wird, der am gemeinsamen Endpunkt der verbundenen Segmente zentriert ist. Der Radius dieser abgerundeten Ecken entspricht der Linienbreite.

"bevel"

Füllt einen zusätzlichen dreieckigen Bereich zwischen dem gemeinsamen Endpunkt der verbundenen Segmente und den separaten äußeren rechteckigen Ecken jedes Segments.

"miter"

Verbundene Segmente werden durch das Verlängern ihrer äußeren Kanten geschlossen, um sich an einem einzigen Punkt zu verbinden, was den Effekt hat, einen zusätzlichen rautenförmigen Bereich zu füllen. Diese Einstellung wird durch die Eigenschaft miterLimit beeinflusst. Standardwert.

Beispiele

Ändern der Verbindungen in einem Pfad

Dieses Beispiel wendet abgerundete Linenverbindungen auf einen Pfad an.

HTML

html
<canvas id="canvas"></canvas>

JavaScript

js
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");

ctx.lineWidth = 20;
ctx.lineJoin = "round";
ctx.beginPath();
ctx.moveTo(20, 20);
ctx.lineTo(190, 100);
ctx.lineTo(280, 20);
ctx.lineTo(280, 150);
ctx.stroke();

Ergebnis

Vergleich von Linienverbindungen

Das folgende Beispiel zeichnet drei verschiedene Pfade und zeigt jede der drei lineJoin-Optionen.

js
const ctx = document.getElementById("canvas").getContext("2d");
ctx.lineWidth = 10;

["round", "bevel", "miter"].forEach((join, i) => {
  ctx.lineJoin = join;
  ctx.beginPath();
  ctx.moveTo(-5, 5 + i * 40);
  ctx.lineTo(35, 45 + i * 40);
  ctx.lineTo(75, 5 + i * 40);
  ctx.lineTo(115, 45 + i * 40);
  ctx.lineTo(155, 5 + i * 40);
  ctx.stroke();
});

Spezifikationen

Specification
HTML
# dom-context-2d-linejoin-dev

Browser-Kompatibilität

  • In WebKit- und Blink-basierten Browsern ist zusätzlich zu dieser Eigenschaft eine nicht standardisierte und veraltete Methode ctx.setLineJoin() implementiert.

Siehe auch