Einzelnen Beitrag anzeigen

finalgott

Registriert seit: 15. Sep 2004
4 Beiträge
 
#3

Re: Rechtecke und Probleme =(

  Alt 23. Sep 2004, 19:29
Hm..

Also ich habe dein Vorschlag übernommen jedoch stimmen die Werte immernoch nicht
überrein...Nun haut er irgendwie die Werte durcheinander...glaub ich jedenfalls auf die schnelle

Also ich möchte immer den linken oberen Punkt und den rechten unteren Punkt ausgegeben haben.
Egal für welches Rechteck
Oder eben den rechten oberen Punkt und den linken unteren..

Nach deiner Lösung würde das ganze nun wie folgt aussehen:
Delphi-Quellcode:
var
  Form1: TForm1;
  a1,a2,a,aa,x2,y2:integer;

implementation

{$R *.dfm}

procedure SwapInteger(var a, b : Integer); // Hilfsfunktion
var
   t : Integer;
begin
   t := a;
   a := b;
   b := t;
end;


procedure zeichneRechteck(canv: Tcanvas; x1, y1,x2,y2: integer; farbeRand:Tcolor);
  const dicke = 3;
begin
  with canv do Begin
    Pen.Width := dicke;
    Pen.Color := farbeRand;
    Brush.Style := bssolid;
    Pen.Mode:=pmNotXor;
    x1:=random(200);
    y1:=x1;
    x2:=random(200);
    y2:=x2 div 2;
    if x1 > x2 then
    SwapInteger(x1, x2); // Tausche X-Koordinaten
    if y2 > y1 then
    SwapInteger(y1, y2);
    Rectangle (x1 -dicke, y1-dicke, x2-dicke, y2 - dicke);
    a:=x1;
    aa:=y1;
    a1:=x2;
    a2:=y2;

   End
end;


procedure TForm1.Button1Click(Sender: TObject);
 var w, h,w2,i,n:integer;
begin
randomize;
n:=strtoint(form1.Edit1.text);
sg1.ColCount :=2;
sg1.RowCount :=n+1;
for i:=1 to n do begin
with image1 do begin
        zeichneRechteck(image1.canvas,a, aa, a1,a2,clgray);
                label1.Caption:= inttostr(a)+(',')+inttostr(aa)+(',')+inttostr(a1)+(',')+inttostr(a2);
end;
                sg1.Cells[0,i]:=inttostr(a)+(',')+inttostr(aa);

                        sg1.Cells[1,i]:=inttostr(a1+a)+(',')+inttostr(a2+aa);
end;


end;




end.
  Mit Zitat antworten Zitat