Maison > Article > interface Web > Comment puis-je dessiner des courbes douces passant par plusieurs points dans HTML5 Canvas ?
Dessiner des courbes douces à travers plusieurs points dans un canevas HTML5
Lors de la création d'applications de dessin, la capture des mouvements de la souris et leur connexion à l'aide de segments de ligne entraînent souvent lignes irrégulières. Pour obtenir des courbes douces, il est nécessaire d'explorer des techniques alternatives.
Fonctions de dessin existantes
HTML5 Canvas fournit trois fonctions de dessin pour relier les points :
L'utilisation de bezierCurveTo pour quatre points peut entraîner des courbures prononcées à chaque intervalle.
Méthode d'approximation : points médians interpolés
Une solution pratique consiste à "courber vers " les milieux de trois points d'échantillonnage consécutifs, créant une courbe continue et lisse :
<code class="javascript">// move to the first point ctx.moveTo(points[0].x, points[0].y); for (var i = 1; i < points.length - 2; i++) { var xc = (points[i].x + points[i + 1].x) / 2; var yc = (points[i].y + points[i + 1].y) / 2; 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>
Cette méthode se rapproche de la courbe en créant des points de contrôle situés aux points médians entre les points d'échantillonnage réels, assurant une transition en douceur au points finaux.
Remarque :
Cette méthode ne trace pas de courbe à travers chaque point d'échantillonnage, mais elle produit une courbe visuellement transparente qui se rapproche étroitement de la forme souhaitée. Des méthodes alternatives qui relient par chaque point existent mais sont plus complexes à mettre en œuvre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!