Hi Leute!
Habe mal eine kleines Programm geschrieben, welches die Bewegung eines Rades mit einer Speiche simulieren soll. Die Speiche im oberen Halbkreis zu drehen war kein großes Problem. Aber wie funktioniert das beim unteren Halbkreis, d.h. wenn sich die Speiche entgegen der Fahrtrichtung bewegt. Den bisherigen Quelltext füge ich unten ein.
Danke!
Quelltext:
procedure TForm1.Kreis(mx,my,r,x: integer; var y1,y2: integer);
begin
y1:=round(my+sqrt(sqr(my)-(sqr(my)-sqr(r)+sqr(x-mx))));
y2:=round(my-sqrt(sqr(my)-(sqr(my)-sqr(r)+sqr(x-mx))));
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,y1,y2: integer;
begin
with image1.Canvas do
begin
x:=100;
y:=150;
r:=50;
for i:=0 to 100 do
begin
pen.color:=clwhite;
ellipse(x+i-50,y-50,x+i+50,y+50); //Kreis übermalen
pen.color:=clblack;
ellipse(x+(i+1)-50,y-50,x+(i+1)+50,y+50); //neuer Kreis
Kreis(x+(i+1),y,r,x-49+(i*2),y1,y2); //y-Koordinaten der Kreispunkte
moveto(x+(i+1),y); //Startpunkt der Speiche
lineto(x-49+(i*2),y2); //Endpunkt der Speiche
sleep(50);
image1.Update;
end;
end;
end;
_________________
Mittsommernacht