其他语言

位置:IT落伍者 >> 其他语言 >> 浏览文章

Delphi实现正弦曲线的绘制


发布日期:2018年11月08日
 
Delphi实现正弦曲线的绘制
在Delphi中没有直接正弦曲线的函数但是在科学研究中正弦曲线的应用是非常广泛的本实例介绍如何绘制正弦曲线

本实例要在窗体上直接绘制正弦曲线为了防止窗口切换的过程中会输出不完整的图形因此绘制图形的关键代码都放在了窗体的OnPaint过程中代码如下

procedure TFormFormPaint(Sender: TObject);

var

x: Integer;

ya: Double;

begin

CanvasPenWidth:=;

CanvasMoveTo(Trunc(selfClientHeight/));

for x := to selfClientWidth do

begin

a := (x/selfClientWidth) * * Pi;

y := Sin(a);

y := (y)*selfClientHeight/;

CanvasLineTo(Trunc(x) Trunc(y));

end;

end;

程序首先设置了窗体的Canvas对象中画笔的宽度并且把绘图的起点移动到了窗体中(Trunc(selfClientHeight/))的位置然后通过一个循环中的a:= (x/selfClientWidth)**Pi语句将一个正弦周期内的角度值转换为弧度值并且把正弦计算后的结果存储在变量y中最后循环中的CanvasLineTo(Trunc(x) Trunc(y))语句就会在窗体上绘制出连续的正弦曲线

程序代码如下

unit Unit;

interface

uses

Windows Messages SysUtils Variants Classes Graphics Controls Forms

Dialogs ExtCtrls StdCtrls;

type

TForm = class(TForm)

procedure FormPaint(Sender: TObject);

procedure FormResize(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form: TForm;

implementation

{$R *dfm}

procedure TFormFormPaint(Sender: TObject);

var

x: Integer;

ya: Double;

begin

CanvasPenWidth:=;

CanvasMoveTo(Trunc(selfClientHeight/));

for x := to selfClientWidth do

begin

a := (x/selfClientWidth) * * Pi;

y := Sin(a);

y := (y)*selfClientHeight/;

CanvasLineTo(Trunc(x) Trunc(y));

end;

end;

procedure TFormFormResize(Sender: TObject);

begin

Refresh;

end;

procedure TFormFormCreate(Sender: TObject);

begin

selfDoubleBuffered:=true;

//防止图形闪烁

end;

end

保存文件然后按F键运行程序在程序运行过程中会自动在窗体上绘制正弦曲线运行结果如图所示

程序运行结果

通过本程序的学习不但可以绘制正弦曲线也可以绘制余弦曲线正切曲线等各式各样的曲线方便科学研究

上一篇:Delphi初学者应小心的六大陷阱

下一篇:用DELPHI在状态栏中显示进程条[2]