Procedura: disegnare spline di tipo Cardinal
Una spline cardinale è una curva che passa uniformemente attraverso un determinato set di punti. Per disegnare una spline cardinale, creare un Graphics oggetto e passare l'indirizzo di una matrice di punti al DrawCurve metodo .
Disegno di una spline cardinale a forma di campana
Nell'esempio seguente viene disegnato uno spline cardinale a forma di campana che passa attraverso cinque punti designati. La figura seguente mostra la curva e cinque punti.
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)
Disegno di una spline cardinale chiusa
- Utilizzare il DrawClosedCurve metodo della Graphics classe per disegnare una spline cardinale chiusa. In una spline cardinale chiusa, la curva continua fino all'ultimo punto della matrice e si connette al primo punto della matrice. Nell'esempio seguente viene disegnato uno spline cardinale chiuso che passa attraverso sei punti designati. La figura seguente mostra la spline chiusa insieme ai sei punti:
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)
Modifica della curva di una spline cardinale
- Modificare il modo in cui una spline cardinale si piega passando un argomento di tensione al DrawCurve metodo . Nell'esempio seguente vengono disegnate tre spline cardinali che passano attraverso lo stesso set di punti. La figura seguente mostra le tre spline insieme ai relativi valori di tensione. Si noti che quando la tensione è 0, i punti sono collegati da linee rette.
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)
Compilazione del codice
Gli esempi precedenti sono progettati per l'uso con Windows Form e richiedono PaintEventArgs e
, che è un parametro del Paint gestore eventi.
Vedi anche
Collabora con noi su GitHub
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
.NET Desktop feedback