En este ejemplo, se dibuja una curva sinusoidal directamente en el formulario. Para evitar que se generen gráficos incompletos durante el cambio de ventana, los códigos clave para dibujar gráficos se colocan en el proceso OnPaint del formulario.
procedimientoTForm1.FormPaint(Remitente:TObject);
var
x:Entero;
y,a:Doble;
comenzar
Ancho.del.lápiz.del.lienzo:=3;
Canvas.MoveTo(0,Trunc(self.ClientHeight/2));
forx:=0toself.ClientWidthdo
comenzar
a:=(x/self.ClientWidth)*2*Pi;
y:=Sin(a);
y:=(1-y)*self.ClientHeight/2;
Canvas.LineTo(Trunc(x),Trunc(y));
fin;
fin;
El programa primero establece el ancho del pincel en el objeto Canvas del formulario y mueve el punto inicial del dibujo a la posición (0,Trunc(self.ClientHeight/2)) en el formulario. Luego, convierta el valor del ángulo dentro de un período sinusoidal en un valor en radianes mediante la instrucción a:=(x/self.ClientWidth)*2*Pi en un bucle y almacene el resultado del cálculo del seno en la variable y. Finalmente, la instrucción Canvas.LineTo(Trunc(x),Trunc(y)) en el bucle dibujará una curva sinusoidal continua en el formulario.
El código del programa es el siguiente:
unidadUnidad1;
interfaz
usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos, CtrlExt, CtrlStd;
tipo
TForm1=clase(TForm)
procedimientoFormPaint(Remitente:TObject);
procedimientoFormResize(Remitente:TObject);
procedimientoFormCreate(Remitente:TObject);
privado
{Declaraciones privadas}
público
{Declaraciones públicas}
fin;
var
Formulario1:TForm1;
implementación
{$R*.dfm}
procedimientoTForm1.FormPaint(Remitente:TObject);
var
x:Entero;
y,a:Doble;
comenzar
Ancho.del.lápiz.del.lienzo:=3;
Canvas.MoveTo(0,Trunc(self.ClientHeight/2));
forx:=0toself.ClientWidthdo
comenzar
a:=(x/self.ClientWidth)*2*Pi;
y:=Sin(a);
y:=(1-y)*self.ClientHeight/2;
Canvas.LineTo(Trunc(x),Trunc(y));
fin;
fin;
procedimientoTForm1.FormResize(Remitente:TObject);
comenzar
Refrescar;
fin;
procedimientoTForm1.FormCreate(Remitente:TObject);
comenzar
self.DoubleBuffered:=verdadero;
//Evita que los gráficos parpadeen
fin;
fin.
Guarde el archivo y presione F9 para ejecutar el programa. Durante la ejecución del programa, se dibujará automáticamente una curva sinusoidal en el formulario y los resultados de la ejecución se muestran en la Figura 1.
Figura 1 Resultados de ejecución del programa
Al aprender este programa, no solo podrá dibujar curvas sinusoidales, sino también varias curvas, como curvas coseno y curvas tangentes, para facilitar la investigación científica.