Bresenham算法
来源:互联网 发布:数据库系统工程师难吗 编辑:程序博客网 时间:2024/04/27 22:40
{****************************************}
{Bresenham,the line paint }
{Designed by whbo,copyright (c) 2003-2004}
{Get in touch with me .Tel:07102690635 }
{email:wanghongbottt123@163.com }
{****************************************}
unit unitline;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
Tlinefrm = class(TForm)
Button1: TButton;
input1: TEdit;
input3: TEdit;
StaticText1: TStaticText;
StaticText2: TStaticText;
input2: TEdit;
input4: TEdit;
Button2: TButton;
procedure Button1Click(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);
procedure FormShow(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
linefrm: Tlinefrm;
implementation
uses unitshow;
{$R *.dfm}
procedure Tlinefrm.Button1Click(Sender: TObject);
var
x0,y0,x1,y1,x,y,i,dx,dy,e:integer;
//x0,y0是起点,x1,y1是终点,x,y做循环是用。
begin
showfrm.Visible:=true;
showfrm.Show;
if (input1.Text <>'') and (input2.Text <>'') and (input3.Text <>'') and (input4.Text <>'') then
begin
x1:=strtoint(input3.Text);
y1:=strtoint(input4.Text);
x0:=strtoint(input1.Text);
y0:=strtoint(input2.Text);
dx:=x1-x0;
dy:=y1-y0;
e:=-dx;
x:=x0;
y:=y0;
for i:=0 to dy do
begin
showfrm.Canvas.Pixels[x,y]:=clred;
x:=x+1;
e:=e+2*dy;
if(e>=0) then
begin
y:=y+1;
e:=e-2*dx;
end;
end;
end;
if (input1.Text ='') or (input2.Text ='') or(input3.Text ='') or (input4.Text ='') then
begin
showmessage('没有数据输入');
showfrm.Visible:=false;
end;
end;
procedure Tlinefrm.input1KeyPress(Sender: TObject; var Key: Char);
begin
if 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;
procedure Tlinefrm.FormShow(Sender: TObject);
begin
input1.SetFocus;
showfrm.Visible:=false;
end;
procedure Tlinefrm.Button2Click(Sender: TObject);
var i:integer;
begin
for i:=0 to componentcount-1 do
begin
if components[i] is Tedit then
Tedit(components[i]).Text:='';
end;
end;
end.
- Bresenham算法
- Bresenham算法
- Bresenham算法
- bresenham算法
- Bresenham算法
- Bresenham算法
- Bresenham算法
- Bresenham算法
- Bresenham算法
- Bresenham算法
- bresenham算法
- 画线算法-Bresenham算法
- Bresenham 画线算法
- Bresenham高效画线算法
- Bresenham 画线算法
- Bresenham 直线算法
- Bresenham画圆算法
- Bresenham 画线算法
- 常用英语
- 我的博客开通啦,开心~!
- 我与小鸟的一次聊天记录(留下是为了,有一天有个会心的回忆……)
- 逐点比较法生成直线,计算机图形学实验。
- asp+mapxtreme的示例代码-通过layerinfo创建图层并画矩形
- Bresenham算法
- 逐点比较发生成直线的算法
- 有i个相同控件,如何指定到第i个
- csdn代码收集
- 小谈旋转图片(源码)
- javascript+xml更新数据雏形
- Telnet 服务器概述
- 如何让DBGrid中每一行颜色按照用户自己的意愿控制
- 可视化、图形学资源收藏