delphi 正弦曲线图
本实例要在窗体上直接绘制正弦曲线,为了防止窗口切换的过程中会输出不完整的图形,因此绘制图形的关键代码都放在了窗体的OnPaint过程中,代码如下:<br><br>procedure TForm1.FormPaint(Sender: TObject);
<br>var
<br> x: Integer;
<br> y,a: Double;
<br>begin
<br> Canvas.Pen.Width:=3;
<br> Canvas.MoveTo(0,Trunc(self.ClientHeight/2));
<br> for x := 0 to self.ClientWidth do
<br> begin
<br> a := (x/self.ClientWidth) * 2 * Pi;
<br> y := Sin(a);
<br> y := (1-y)*self.ClientHeight/2;
<br> Canvas.LineTo(Trunc(x), Trunc(y));
<br> end;
<br>end;
<br><br> 程序首先设置了窗体的Canvas对象中画笔的宽度,并且把绘图的起点移动到了窗体中(0,Trunc(self.ClientHeight/2))的位置。然后通过一个循环中的a:= (x/self.ClientWidth)*2*Pi语句将一个正弦周期内的角度值转换为弧度值,并且把正弦计算后的结果存储在变量y中。最后,循环中的Canvas.LineTo(Trunc(x), Trunc(y))语句就会在窗体上绘制出连续的正弦曲线。
<br><br> 程序代码如下:
<br><br>unit Unit1;
<br><br>interface
<br><br>uses
<br><br>Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
<br><br>Dialogs, ExtCtrls, StdCtrls;
<br><br>type
<br> TForm1 = class(TForm)
<br> procedure FormPaint(Sender: TObject);
<br> procedure FormResize(Sender: TObject);
<br> procedure FormCreate(Sender: TObject);
<br>private
<br> { Private declarations }
<br>public
<br> { Public declarations }
<br>end;
<br><br>var
<br> Form1: TForm1;
<br> implementation
<br> {$R *.dfm}
<br> procedure TForm1.FormPaint(Sender: TObject);
<br>var
<br> x: Integer;
<br> y,a: Double;
<br>begin
<br> Canvas.Pen.Width:=3;
<br> Canvas.MoveTo(0,Trunc(self.ClientHeight/2));
<br> for x := 0 to self.ClientWidth do
<br> begin
<br> a := (x/self.ClientWidth) * 2 * Pi;
<br> y := Sin(a);
<br> y := (1-y)*self.ClientHeight/2;
<br> Canvas.LineTo(Trunc(x), Trunc(y));
<br> end;
<br>end;
<br><br>procedure TForm1.FormResize(Sender: TObject);
<br> begin
<br> Refresh;
<br>end;
<br><br>procedure TForm1.FormCreate(Sender: TObject);
<br>begin
<br> self.DoubleBuffered:=true;
<br> //防止图形闪烁
<br>end;
<br>end.
<br><br> 保存文件,然后按F9键运行程序。在程序运行过程中,会自动在窗体上绘制正弦曲线,运行结果如图1所示。
<br><br>
<br><br>图1 程序运行结果
<br><br>
<br> 通过本程序的学习,不但可以绘制正弦曲线,也可以绘制余弦曲线、正切曲线等各式各样的曲线,方便科学研
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li>delphi程序全屏显示无标题栏覆盖整个屏幕(适合屏保)</li><li>delphi实现将BMP格式图形转化为JPG格式图形的方法</li><li>delphi实现保存和读取图片的方法</li><li>Delphi实现图像文本旋转特效完整实例代码</li><li>Delphi实现图片滚动切换的完整实例代码</li><li>在Delphi实现在数据库中存取图像的图文演示无错</li><li>Delphi实现截屏存盘的方法</li></ul>
</div>
</div>
<!--endmain-->
頁:
[1]