请大侠助我一臂之力:求循环算法 ( 积分: 200 )

  • 主题发起人 主题发起人 laohe
  • 开始时间 开始时间
L

laohe

Unregistered / Unconfirmed
GUEST, unregistred user!
鼠标移动在屏幕上移动的算法.主要是移动的路线.
就是需要坐标位置的循环.
类似横向循环.
就是横向循环N个,竖向循环M个

(P.x,P.y)→(P2.x,P2.y)→(P3.x,P3.y)→(P4.x,P4.y)......

■→■→■→■→■→■

■←■←■←■←■←■

■→■→■→■→■→■

■←■←■←■←■←■

■→■→■→■→■→■

以上的黑点是屏幕上的不同的点
 
鼠标移动在屏幕上移动的算法.主要是移动的路线.
就是需要坐标位置的循环.
类似横向循环.
就是横向循环N个,竖向循环M个

(P.x,P.y)→(P2.x,P2.y)→(P3.x,P3.y)→(P4.x,P4.y)......

■→■→■→■→■→■

■←■←■←■←■←■

■→■→■→■→■→■

■←■←■←■←■←■

■→■→■→■→■→■

以上的黑点是屏幕上的不同的点
 
例如超点P1(1,1),始点P100(800,600),怎么P1,P2,P3循环到P100

P1--------------
| |
| |
| |
-------------P100
 
// 刚写的。不知合不合你用,不合的我在改改
procedure TForm1.Button1Click(Sender: TObject);
var
i, j : Integer;
M, N : Integer;
X, Y : Integer;
Flat : Boolean;
Interval : Integer;
begin
Button1.Visible := False;
M := 20;
N := 20;
X := 10;
Y := 10;
Flat := True;
Interval := 20;

for i := 1 to M do
begin
for j := 1 to N do
begin
if Flat = True then
begin
if j <> 1 then
X := X + Interval;
end
else
begin
if j <> 1 then
X := X - Interval;
end;

Sleep(500);
Form1.Canvas.Ellipse(X - 5, Y - 5, X + 5, Y + 5);
end;


Flat := Not Flat;
Y := Y + Interval;
end;

end;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部