|
#1
|
|||
|
|||
Canvas
В четырех строках ввода (Edit) ввести координаты двух угловых вершин
прямоугольника, его стороны параллельны кроме формы. Генератором случайных чисел сгенерировать 1000 случайных точек. Те из них, которые попадут мимо прямоугольника, отображать синим цветом, те, что внутрь прямоугольника - лимонным, на границы прямоуголольника - красным. По окончании "обстрела" вывести в надписи (Label) сколько точек попало в прямоугольник, сколько на его границы, сколько не попало в прямоугольник. |
#2
|
|||
|
|||
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) edt1: TEdit; edt2: TEdit; edt3: TEdit; edt4: TEdit; btn1: TButton; btn2: TButton; lbl1: TLabel; procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var x1,x2,y1,y2,q,k,z: Integer; {$R *.dfm} {В четырех строках ввода (Edit) ввести координаты двух угловых вершин прямоугольника, его стороны параллельны кроме формы. Генератором случайных чисел сгенерировать 1000 случайных точек. Те из них, которые попадут мимо прямоугольника, отображать синим цветом, те, что внутрь прямоугольника - лимонным, на границы прямоуголольника - красным. По окончании "обстрела" вывести в надписи (Label) сколько точек попало в прямоугольник, сколько на его границы, сколько не попало в прямоугольник.} procedure TForm1.btn1Click(Sender: TObject); begin x1:=StrToInt(edt1.text); y1:=StrToInt(edt2.text); x2:=StrToInt(edt3.text); y2:=StrToInt(edt4.text); edt1.Hide; edt2.Hide; edt3.Hide; edt4.Hide; Form1.Canvas.Brush.color:=clblack; Form1.Canvas.Pen.color:=clwhite; form1.Canvas.rectangle(x1,y1,x2,y2); x2:=x2-1; y2:=y2-1; end; procedure TForm1.btn2Click(Sender: TObject); var px: array [1..1000] of integer; py: array [1..1000] of Integer; i:Integer; begin randomize; for i:=1 to 1000 do begin px[i]:=Random(1000); py[i]:=Random(500); if ( px[i]>x1) and (px[i]<x2) and (py[i]>y1) and ( py[i]<y2) then begin Form1.Canvas.Pixels[px[i],py[i]]:=clyellow;inc(q);end else if (((px[i]=x1) or (px[i]=x2))and(py[i]>y1) and (py[i]<y2)) then begin Form1.Canvas.Pixels[px[i],py[i]]:=clred; Inc(k);end else if (((py[i]=y1) or (py[i]=y2))and(px[i]>x1) and (px[i]<x2)) then begin Form1.Canvas.Pixels[px[i],py[i]]:=clred;Inc(k);end else begin Form1.Canvas.Pixels[px[i],py[i]]:=clblue; inc(z); end ; end; lbl1.caption:='Внутри='+floattostr(q)+' На границе='+floattostr(k)+' На снаружи='+floattostr(z); end; end. |