Procedimiento para dibujar curvas spline cardinales
Una curva spline cardinal es una curva que pasa suavemente por un conjunto determinado de puntos. Para dibujar una curva spline cardinal, cree un objeto Graphics y pase la dirección de una matriz de puntos al método DrawCurve.
Dibujo de una curva spline cardinal con forma de campana
En el ejemplo siguiente se dibuja una curva spline cardinal con forma de campana que pasa por cinco puntos designados. En la ilustración siguiente se muestran la curva y los cinco puntos.
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)
Dibujo de una curva spline cardinal cerrada
- Use el método DrawClosedCurve de la clase Graphics para dibujar una curva spline cardinal cerrada. En una curva spline cardinal cerrada, la curva continúa hasta el último punto de la matriz y se conecta con el primer punto de la matriz. En el ejemplo siguiente se dibuja una curva spline cardinal cerrada que pasa por seis puntos designados. En la ilustración siguiente se muestran la curva spline cerrada y los seis puntos:
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)
Cambio de la curvatura de una curva spline cardinal
- Para cambiar la forma en que se dobla una curva spline cardinal, pase un argumento de tensión al método DrawCurve. En el ejemplo siguiente se dibujan tres curvas spline cardinales que pasan por el mismo conjunto de puntos. En la ilustración siguiente se muestran las tres curvas spline y sus valores de tensión. Tenga en cuenta que, cuando la tensión es 0, los puntos están conectados por líneas rectas.
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)
Compilar el código
Los ejemplos anteriores están diseñados para su uso con Windows Forms y requieren PaintEventArgse
, que es un parámetro del controlador de eventos Paint.
Consulte también
.NET Desktop feedback