软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
逐点比较发生成直线的算法

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

{*****************************************}
{以下是逐点比较发生成直线的算法,          }
{如有建议或意见,请与我联系.QQ:287179523   }
{Email:[email protected]           }
{Copy Right (c) 2003-2004 Reserved.       }
{*****************************************}
unit uniteline;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  Tlinefrm = class(TForm)
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    input1: TEdit;
    input2: TEdit;
    input3: TEdit;
    input4: TEdit;
    Button1: TButton;
    GroupBox1: TGroupBox;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure input1KeyPress(Sender: TObject; var Key: Char);
    procedure input2KeyPress(Sender: TObject; var Key: Char);
    procedure input3KeyPress(Sender: TObject; var Key: Char);
    procedure input4KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  linefrm: Tlinefrm;

implementation

{$R *.dfm}

procedure Tlinefrm.Button1Click(Sender: TObject);
//说明,我的第一点取(x0+1,y0);并且在第一象限内
var
 i,j,x0,y0,xe,ye,x,y,n,n1,n2:integer;
 f:array[1..1024] of integer;
begin
 linefrm.GroupBox1.Visible:=true;
 linefrm.GroupBox1.Align:=alclient;
  j:=1;
 x0:=strtoint(input1.Text);
 y0:=strtoint(input2.Text);
 xe:=strtoint(input3.Text);
 ye:=strtoint(input4.Text);
 x:=x0+1;
 y:=y0;
 n1:=xe-x0;
 n2:=ye-y0;
 //fm:=ym*xa-ya*xm=>f1:=-y1  point(1,0)
 f[1]:=0-ye;
 n:=n1+n2;
   for i:=0 to n-1 do
   begin
    linefrm.Image1.Canvas.Pixels[x,y]:=clred;
    if f[j]<0 then
      begin
       y:=y+1;j:=j+1;
       f[j+1]:=f[j]+xe;
      end
    else if f[j]>=0 then
      begin
      j:=j+1;
      f[j+1]:=f[j]-ye;
      x:=x+1;
      end;
  end;

end;
procedure Tlinefrm.FormCreate(Sender: TObject);
begin
 linefrm.Left:=0;
 linefrm.Top:=0;
 linefrm.Width:=600;
 linefrm.Height:=450
end;

procedure Tlinefrm.input1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(key)=13 then
input2.SetFocus;
end;

procedure Tlinefrm.input2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
input3.SetFocus;
end;

procedure Tlinefrm.input3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
input4.SetFocus;
end;

procedure Tlinefrm.input4KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
button1.SetFocus;
end;

end.




相关文章

相关软件