Einzelnen Beitrag anzeigen

hedi112

Registriert seit: 25. Okt 2009
12 Beiträge
 
#1

Stern zeichnen mit line to und move to

  Alt 25. Okt 2009, 13:11
guten tag,

ich studiere aktuell im dritten semester, und muss nun ein praktikum machen, wo ein stern vieleck gezeichnet weden soll.

ich hab mir auch bereits gedanken gemacht und das programm geschrieben, aber leider kommt da kein stern bei raus, sondern nur eine linie.

Da mir hinten und vorne nicht klar ist, woran das liegt, bitte ich euch einfach mal um hilfe.

ich hänge mal den bereits vorhandenen quelltext an...

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    SpinEdit1: TSpinEdit;
    SpinEdit2: TSpinEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    SpinEdit3: TSpinEdit;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  xm, ym,
  Anzahl_Punkte,
  ri, ra: integer;
  Winkelstueck: double;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
    begin
    xm:=image1.Width div 2;
    ym:=image1.height div 2;
    Anzahl_Punkte:=2*spinedit1.value;
    ri:= SpinEdit2.value; //spinedit.value ist sofort
    ra:= SpinEdit3.value; //ein integer wert...
    xm:=xm+ri;
    winkelstueck:=(2*pi)/Anzahl_Punkte;
    end;

procedure TForm1.Button1Click(Sender: TObject);
var
index,x,xi,yi: integer;

begin
   image1.Canvas.moveto(xm,ym);
   x:=Anzahl_Punkte mod 2;
for index:=1 to Anzahl_Punkte do
    if x=0 then
        begin
        xi:=trunc (ri*cos(index*winkelstueck));
        yi:=trunc (ri*sin(index*winkelstueck));
        image1.Canvas.LineTo(xi,yi)
        end
    else
        begin
        xi:=trunc (ra*cos(winkelstueck));
        yi:=trunc (ra*sin(winkelstueck));
        image1.Canvas.lineto(xi,yi);
        end;
end;

procedure TForm1.Button2Click(Sender: TObject);
   begin
   image1.picture:= nil
   end;

end.
[edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit]
Angehängte Grafiken
Dateityp: bmp bild1_811.bmp (1,26 MB, 38x aufgerufen)
  Mit Zitat antworten Zitat