Neste exemplo, uma curva senoidal é desenhada diretamente no formulário Para evitar a saída de gráficos incompletos durante a troca de janela, o código-chave para desenhar gráficos é colocado no processo OnPaint do formulário.
procedimentoTForm1.FormPaint(Remetente:TObject);
var
x:Inteiro;
y,a:Duplo;
começar
Canvas.Pen.Width:=3;
Canvas.MoveTo(0,Trunc(self.ClientHeight/2));
forx:=0toself.ClientWidthdo
começar
a:=(x/self.ClientWidth)*2*Pi;
y:=Pecado(a);
y:=(1-y)*self.ClientHeight/2;
Canvas.LineTo(Trunc(x),Trunc(y));
fim;
fim;
O programa primeiro define a largura do pincel no objeto Canvas do formulário e move o ponto inicial do desenho para a posição de (0,Trunc(self.ClientHeight/2)) no formulário. Em seguida, converta o valor do ângulo dentro de um período senoidal em um valor radiano por meio da instrução a:=(x/self.ClientWidth)*2*Pi em um loop e armazene o resultado do cálculo do seno na variável y. Finalmente, a instrução Canvas.LineTo(Trunc(x),Trunc(y)) no loop desenhará uma curva senoidal contínua no formulário.
O código do programa é o seguinte:
unidadeUnidade1;
interface
usa
Windows, Mensagens, SysUtils, Variantes, Classes, Gráficos, Controles, Formulários,
Diálogos,ExtCtrls,StdCtrls;
tipo
TForm1=classe(TForm)
procedimentoFormPaint(Sender:TObject);
procedimentoFormResize(Sender:TObject);
procedimentoFormCreate(Sender:TObject);
privado
{Declarações privadas}
público
{declarações públicas}
fim;
var
Formulário1:TForm1;
implementação
{$R*.dfm}
procedimentoTForm1.FormPaint(Remetente:TObject);
var
x:Inteiro;
y,a:Duplo;
começar
Canvas.Pen.Width:=3;
Canvas.MoveTo(0,Trunc(self.ClientHeight/2));
forx:=0toself.ClientWidthdo
começar
a:=(x/self.ClientWidth)*2*Pi;
y:=Pecado(a);
y:=(1-y)*self.ClientHeight/2;
Canvas.LineTo(Trunc(x),Trunc(y));
fim;
fim;
procedimentoTForm1.FormResize(Sender:TObject);
começar
Atualizar;
fim;
procedimentoTForm1.FormCreate(Sender:TObject);
começar
self.DoubleBuffered:=true;
//Evita que os gráficos tremeluzam
fim;
fim.
Salve o arquivo e pressione F9 para executar o programa. Durante a execução do programa, uma curva senoidal será desenhada automaticamente no formulário, e os resultados da execução são mostrados na Figura 1.
Figura 1 Resultados da execução do programa
Ao aprender este programa, você pode não apenas desenhar curvas senoidais, mas também várias curvas, como curvas cosseno e curvas tangentes, para facilitar a pesquisa científica.