Thema: Delphi Epizykloide programm

Einzelnen Beitrag anzeigen

Langa

Registriert seit: 10. Apr 2006
Ort: Dresden
24 Beiträge
 
Delphi 6 Enterprise
 
#13

Re: Epizykloide programm

  Alt 17. Apr 2006, 13:00
so hab alles her geLitten. geht auch alles ganz gut
was mich jetzt aber noch stört ist das der mir beim start nich gleich anzeigt sondern erst wenn man reset oder start drückt kann da mir mal jemand sagen wie man das hin bekommt
Delphi-Quellcode:
procedure TForm1.Formcreate(Sender: TObject);

begin
        x0:=148;
        y0:=128;
   form1.button2.Visible:=true;
   form1.Button4.Visible:=false;
   timer1.Enabled:=false;
   doublebuffered := true; // anzeigen der erzeugten bitmaps

   w:= paintbox1.width ;
   h:= paintbox1.height ;
   paintbox1.canvas.brush.color:=clwhite;
   bitmap1 := Tbitmap.Create;
   bitmap2 := Tbitmap.Create;

   bitmap1.PixelFormat := pf8bit;
   bitmap1.Width := w;
   bitmap1.height := h;
   bitmap1.TransparentColor := clBtnFace;

   bitmap2.PixelFormat := pf8bit;
   bitmap2.Width := w ;
   bitmap2.height := h ;

with bitmap1.Canvas do begin
      ellipse(x0-r1,y0-r1,x0+r1,y0+r1); //zentraler Kreis
      ellipse(x0+r1,y0+r2,x0+r1+2*r2,y0-r2); //außen Kreis
      pen.Color:=clred;
      ellipse(x0+r1+2,y0+2,x0+r1-2,y0-2);
      pen.Color:=clblack;
      end;
    paintbox1.Canvas.Draw(0,0,bitmap1);


end;
falls der ausschnitt nich reicht oben ist ja der gesammte angehängt

hoffe ihr könnt mir helfen

achso hab gleich noch ein problem

wenn ich stop drücke und dann wieder ohne was zu machen wieder start mache soll der mir ander stelle weiter malen das macht er aber die alte bahn soll auch erhalten werden und das wird immer gelöscht
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
winkel:=winkel+1; // pro schritt erhöhung des winkels

  winkelrad:=winkel/180*pi;
  xn:=x0+round((r1+r2)*cos(winkelrad)-r2*cos((r1+r2)*winkelrad/r2));
  yn:=y0+round((r1+r2)*sin(winkelrad)-r2*sin((r1+r2)*winkelrad/r2));
  xk:=x0+round((r1+r2)*cos(winkelrad));
  yk:=y0+round((r1+r2)*sin(winkelrad));
  with bitmap1.Canvas do begin
      brush.Color:=clwhite;
      pen.Color:=clwhite;
      rectangle(0,0,w,h);
      pen.Color:=clblack;
      ellipse(x0-r1,y0-r1,x0+r1,y0+r1);
      ellipse(xk-r2,yk-r2,xk+r2,yk+r2);
      pen.Color:=clred;
      ellipse(xn+2,yn+2,xn-2,yn-2);
      pen.Color:=clblack;
   end;
  bitmap2.Canvas.Pixels[xn,yn]:=clblack;
  paintbox1.Canvas.Draw(0,0,bitmap2);
  paintbox1.Canvas.Draw(0,0,bitmap1);
  paintbox1.Canvas.CopyMode:=cmSrcAnd;
  paintbox1.Canvas.CopyRect(rect(0,0,w,h) ,bitmap2.Canvas, rect(0,0,w,h));
  paintbox1.Canvas.CopyMode:=cmSrcCopy ;

end;



procedure TForm1.Button4Click(Sender: TObject); //Stop knopf
begin
form1.button2.Visible:=true;
form1.Button4.Visible:=false;
timer1.Enabled:=false;
end;
  Mit Zitat antworten Zitat