Comment : dessiner des splines cardinales
Un spline carte inal est une courbe qui passe en douceur à travers un ensemble donné de points. Pour dessiner un spline carte inal, créez un objet et transmettez l’adresse d’un Graphics tableau de points à la DrawCurve méthode.
Dessin d’une spline cardinale en forme de cloche
L’exemple suivant dessine une spline carte inal en forme de cloche qui passe à cinq points désignés. L’illustration suivante montre la courbe et cinq points.
Point[] points = {
new Point(0, 100),
new Point(50, 80),
new Point(100, 20),
new Point(150, 80),
new Point(200, 100)};
Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points);
Dim points As Point() = { _
New Point(0, 100), _
New Point(50, 80), _
New Point(100, 20), _
New Point(150, 80), _
New Point(200, 100)}
Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points)
Dessin d’une spline cardinale fermée
- Utilisez la DrawClosedCurve méthode de la Graphics classe pour dessiner un spline carte inal fermé. Dans un spline carte inal fermé, la courbe continue à travers le dernier point du tableau et se connecte au premier point du tableau. L’exemple suivant dessine un spline carte inal fermé qui passe à six points désignés. L’illustration suivante montre le spline fermé avec les six points :
Point[] points = {
new Point(60, 60),
new Point(150, 80),
new Point(200, 40),
new Point(180, 120),
new Point(120, 100),
new Point(80, 160)};
Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawClosedCurve(pen, points);
Dim points As Point() = { _
New Point(60, 60), _
New Point(150, 80), _
New Point(200, 40), _
New Point(180, 120), _
New Point(120, 100), _
New Point(80, 160)}
Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawClosedCurve(pen, points)
Modification de la courbe d’un spline cardinal
- Modifiez la façon dont un spline carte inal se plie en passant un argument de tension à la DrawCurve méthode. L’exemple suivant dessine trois splines carte inal qui passent par le même jeu de points. L’illustration suivante montre les trois splines ainsi que leurs valeurs de tension. Notez que lorsque la tension est de 0, les points sont reliés par des lignes droites.
Point[] points = {
new Point(20, 50),
new Point(100, 10),
new Point(200, 100),
new Point(300, 50),
new Point(400, 80)};
Pen pen = new Pen(Color.FromArgb(255, 0, 0, 255));
e.Graphics.DrawCurve(pen, points, 0.0f);
e.Graphics.DrawCurve(pen, points, 0.6f);
e.Graphics.DrawCurve(pen, points, 1.0f);
Dim points As Point() = { _
New Point(20, 50), _
New Point(100, 10), _
New Point(200, 100), _
New Point(300, 50), _
New Point(400, 80)}
Dim pen As New Pen(Color.FromArgb(255, 0, 0, 255))
e.Graphics.DrawCurve(pen, points, 0.0F)
e.Graphics.DrawCurve(pen, points, 0.6F)
e.Graphics.DrawCurve(pen, points, 1.0F)
Compilation du code
Les exemples précédents sont conçus pour être utilisés avec Windows Forms et nécessitent PaintEventArgse
, qui est un paramètre du Paint gestionnaire d’événements.
Voir aussi
.NET Desktop feedback
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour