Heim > Artikel > Web-Frontend > Wie zeichnet man glatte Kurven im Canvas mit mehreren Punkten?
So zeichnen Sie glatte Kurven mit mehreren Punkten in JavaScript und HTML5 Canvas
Problem:
Das Erstellen glatter Kurven in Zeichenanwendungen durch Verbinden von Beispielpunkten mit „curveTo“-Funktionen führt aufgrund der unzusammenhängenden Steuerung zu Knicken Punkte.
Lösung:
Um eine glatte Kurve durch N Punkte zu zeichnen, besteht ein alternativer Ansatz darin, die Mittelpunkte zwischen aufeinanderfolgenden Punkten zu „krümmen“. Punkte.
Code:
<code class="javascript">// Move to the first point ctx.moveTo(points[0].x, points[0].y); // Iterate through points for (var i = 1; i < points.length - 2; i++) { // Calculate midpoint var xc = (points[i].x + points[i + 1].x) / 2; var yc = (points[i].y + points[i + 1].y) / 2; // Create quadratic curves to midpoints ctx.quadraticCurveTo(points[i].x, points[i].y, xc, yc); } // Curve through the last two points ctx.quadraticCurveTo( points[i].x, points[i].y, points[i + 1].x, points[i + 1].y );</code>
Erklärung:
Diese Methode nähert sich einer glatten Kurve an, indem Kurven an den Punkten verbunden werden Mittelpunkte benachbarter Punkte. Jede unzusammenhängende Kurve hat einen gemeinsamen Endpunkt, wird jedoch von gemeinsamen Kontrollpunkten beeinflusst, was zu sanften Übergängen an Schnittpunkten führt.
Hinweis:
Dieser Ansatz zieht sich zwar nicht durch alle Beispielpunkt, wie ursprünglich im Titel der Frage angegeben, erzeugt er optisch nicht unterscheidbare glatte Kurven, die für die meisten Zeichenanwendungen ausreichen.
Das obige ist der detaillierte Inhalt vonWie zeichnet man glatte Kurven im Canvas mit mehreren Punkten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!