| Autor |
Beitrag |
DaniSahne
Hält's aus hier
Beiträge: 7
|
Verfasst: Mi 05.01.05 12:36
Hallo
ich suche jemanden der mir hilft ein delphiprgramm zu entwickeln, wo man zufällig in einem image rechtecke,kreise,quadrate und dreiecke sehen möchte, dazu soll der computer selbst entscheiden welche Farbe und dann auch noch die anzahl der anzuzeigenden Flächen. Wer echt nett von euch, ich weiß es das sehr easy ist, aber zur zeit hängt es bei mir etwas.
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mi 05.01.05 13:00
Also, das machst du am besten mit Canvas:
Zum Rechtecke zeichnen:
| Zitat: | Die Methode Rectangle zeichnet ein Rechteck mit der linken oberen Ecke am Punkt (X1, Y1) und der rechten unteren Ecke am Punkt (X2, Y2).
procedure Rectangle(X1, Y1, X2, Y2: Integer);
Beschreibung
Mit Rectangle können Sie unter Verwendung des aktuellen Stifts ein Rechteck zeichnen und es mit dem aktuellen Pinsel füllen. Um einen rechteckigen Bereich zu füllen, ohne für den Umriß den aktuellen Pinsel zu verwenden, bedienen Sie sich der Methode FillRect. Mit FrameRect oder Polygon können Sie den Umriß eines rechteckigen Bereichs zeichnen, ohne diesen zu füllen. Mit RoundRect können Sie ein Rechteck mit abgerundeten Ecken zeichnen. |
Zum Kreise zeichnen:
| Zitat: | Die Methode Ellipse zeichnet auf der Zeichenfläche eine Ellipse, die durch ein umgebendes Rechteck definiert ist.
procedure Ellipse(X1, Y1, X2, Y2: Integer);
Beschreibung
Mit Ellipse können Sie auf der Zeichenfläche einen Kreis oder eine Ellipse zeichnen. Die linke obere Ecke des umgebenden Rechtecks befindet sich an den Pixel-Koordinaten (X1, Y1), die rechte untere Ecke an den Koordinaten (X2, Y2). Wenn die Ecken des Recktecks ein Quadrat bilden, wird ein Kreis gezeichnet.
Die Ellipse wird mit dem aktuellen Stift gezeichnet und mit dem aktuellen Pinsel gefüllt.
Hinweis
Unter Windows 95 dürfen die Summen X1 + X2 und Y1 + Y2 den Wert 32768 nicht überschreiten. Das gleiche gilt für die Summe X1 + X2 + Y1 + Y2. |
Zum Quadrate zeichnen, das mit den Rechtecken, nur mit gleicher Höhe und Breite...
Zum Dreiecke zeichnen ein Rechteck verwenden, und einmal für zwei Punkte, den selben Wert nehmen...
Das mit der Farbe machst du so:
Delphi-Quelltext 1: 2:
| randomize; Canvas.Brush.Color := RGB(random(256), random(256), random(256)); |
Viel Spaß...
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
WeBsPaCe
      
Beiträge: 2322
Erhaltene Danke: 1
FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
|
Verfasst: Mi 05.01.05 13:29
Die Unit dazu sähe ungefähr' so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject); var farbe: TColor; aktion: Integer; wert: array[1..6] of Integer; begin Form1.Color := clWhite; randomize; Canvas.Pen.Color := RGB(random(256), random(256), random(256)); Canvas.Brush.Color := Form1.Color; aktion := random(4); if aktion = 0 then begin wert[1] := random(Form1.Width); wert[2] := random(Form1.Height); wert[3] := random(Form1.Width); wert[4] := random(Form1.Height); Canvas.Ellipse(wert[1], wert[2], wert[3], wert[4]); end; if aktion = 1 then begin wert[1] := random(Form1.Width); wert[2] := random(Form1.Height); wert[3] := random(Form1.Width); wert[4] := random(Form1.Height); Canvas.Rectangle(wert[1], wert[2], wert[3], wert[4]); end; if aktion = 2 then begin wert[1] := random(Form1.Width); wert[2] := random(Form1.Height); wert[3] := random(Form1.Width); Canvas.MoveTo(wert[1], wert[2]); Canvas.LineTo(wert[3], wert[2]); Canvas.LineTo(wert[3], wert[2]+wert[3]-wert[1]); Canvas.LineTo(wert[1], wert[2]+wert[3]-wert[1]); Canvas.LineTo(wert[1], wert[2]); end; if aktion = 0 then begin wert[1] := random(Form1.Width); wert[2] := random(Form1.Height); wert[3] := random(Form1.Width); wert[4] := random(Form1.Height); wert[5] := random(Form1.Width); wert[6] := random(Form1.Height); Canvas.MoveTo(wert[1], wert[2]); Canvas.LineTo(wert[3], wert[4]); Canvas.LineTo(wert[5], wert[6]); Canvas.LineTo(wert[1], wert[2]); end; end;
end. |
_________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
|
|
|