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 Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.

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

Diese Eigenschaft hat keinen Effekt, wenn zwei verbundene Segmente die gleiche Richtung haben, da in diesem Fall kein Verbindungsbereich hinzugefügt wird. Degenerierte Segmente mit einer Länge von null (d.h. mit allen Endpunkten und Kontrollpunkten exakt an derselben Position) werden ebenfalls ignoriert.

Hinweis: Linien können mit den stroke(), strokeRect(), und strokeText()-Methoden 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, 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ügt ein zusätzliches dreieckiges Gebiet zwischen dem gemeinsamen Endpunkt der verbundenen Segmente und den separaten äußeren rechteckigen Ecken jedes Segments ein.

"miter"

Verbundene Segmente werden durch Verlängern ihrer äußeren Kanten verbunden, um sich an einem einzigen Punkt zu verbinden, mit dem Effekt, ein zusätzliches rautenförmiges Gebiet zu füllen. Diese Einstellung wird durch die miterLimit-Eigenschaft beeinflusst. Standardwert.

Beispiele

Ändern der Verbindungen in einem Pfad

Dieses Beispiel wendet abgerundete Linienverbindungen 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 der Linienverbindungen

Im folgenden Beispiel werden drei verschiedene Pfade gezeichnet, die jede der drei lineJoin-Optionen demonstrieren.

js
const ctx = document.getElementById("my-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

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

Browser-Kompatibilität

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

Siehe auch