Einzelnen Beitrag anzeigen

becks2013

Registriert seit: 17. Jun 2013
4 Beiträge
 
#1

Stern Programmieren und zeichnen

  Alt 18. Jun 2013, 12:47
Hallo ich hoffe ich bin richtig hier mit meiner Frage.
Also ich benötige zur Klausurvorbereitung ein Programm. Ich möchte einen Stern zeichnen.

Ich bin jetzt nicht so der Crack . Akutell sieht das ganze so aus: Imagefeld, 1 Button, 3 Editfelder.
Ich benutze das Programm Lararus.
Aber es bleibt immer so eine unschöne Ecke stehen

Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
   var // lokale Variablen
      x,y,xm,ym,xmm,ymm,ir,ar,index,vz,anzahl:integer;
     winkel,winkelschritt:double;

   begin
   anzahl:=strtoint(edit1.text); // Anzahl aus Edit 1
   xm:=image1.Width; // X-Wert aus Edit2
   ym:=image1.height; // Y-Wert aus Edit 3
   xmm:= xm div 2;
   ymm:= ym div 2;
   ir :=strtoint(edit4.text); // Innenradius aus Edit 4
   ar :=strtoint(edit6.text); // Außenradius aus Edit 6
   image1.canvas.pen.color:=clblack; // Stiftfarbe
   image1.canvas.fillrect(0,0,xm,ym);
   x:=ar+xmm; y:=ymm; // Anfangspunkt
   vz:=-1;
   image1.canvas.MoveTo(x,y); // mit gehobenem Stift anfahren
   winkelschritt:=(2*Pi)/anzahl; // Winkelschritt berechnen
   for index:=1 to anzahl do
      begin
      winkel:=winkelschritt*(index-1)+winkelschritt/2; // Winkel ab 0°
      x:=round(ar*cos(winkel))+xmm; // x- Koordinate
      y:=round(vz*ar*sin(winkel))+ymm; // y- Koordinate
      image1.canvas.lineto(x,y); // Zeichnen
      winkel:=winkelschritt*index;
      x:=round(ir*cos(winkel))+xmm; // x- Koordinate
      y:=round(vz*ir*sin(winkel))+ymm; // y- Koordinate
      image1.canvas.lineto(x,y);
      end;

end;

Geändert von becks2013 (18. Jun 2013 um 12:56 Uhr)
  Mit Zitat antworten Zitat