Einzelnen Beitrag anzeigen

Gandalfus

Registriert seit: 19. Apr 2003
407 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Probleme beim Zeichnen eines Pendels

  Alt 10. Sep 2003, 15:51
1. du nimmst dir ein Backbild(schneller und kein flimmern)
Delphi-Quellcode:
Var
  Backbild: TBitmap;

oncreate:
  backbild := TBitmap.create;
  backbild.width := Form1.width;
  backbild.height:= Form1.height;
Ab hier kommen alle Punkte in einen Timer mit Intervall 55
(wenn es läuft kann man später auch threads oder onidle nehmen)
2.Hintergrund löschen z.B ein Rechteck drüberzeichne:

backbild.canvas.rectangle(0,0,backbild.width ,backbild.height)
3. Du bestimmst den Mitelpunkt des Kreises sagen wir mal 50,50
(0,0 ist die ecke opben links des Formulars)
und dan zum zeichen dahin:

backbild.canvas.moveto[50,50]; 4. Jetzt musst du noch den aktuellen standpunkt des Pendels bestimmen.
Das ist der Punkt in dem es noch Probleme zu lösen giebt.
Du brauchst ja eine Radius in pixeln deien eingabe ist aber Warscheinlich in Metern da musst du das irgenwie umrechne. z.B.: 1 cm = 1 Pixel allerdings sieht das bei unterschiedlichen Auflösungen auch unterschiedlich aus.
Des weiteren musst du den aktuellen stand des Pendles berechnen.
Das kann ich nicht. Ich meine z.B. mich zuerinnern das es sich für grössere Auslenkungen nicht mehr um ein Harmonische schwingung handelt!
Um die zeit nach dem starten des pendels zu erhalten kannst du timegettime(uses mmsystem) nutzen.
Wolltest du überhaupt ein echtzeit pendel?
edit: ich denke sowas: http://www.ai.ch/gym/fachsch/physik/schwingung.htm
ist das ziel oder sehe ich das falsch?

backbild.canvas.moveto[errechneterPunkt]; und vieleicht noch ein Kugel bild
backbild.canvas.draw(errechneterPunkt,Image1.bitmap); 5. Das gesamte HIntergrund bild wir jetzt auf das Formular kopiert
Form1.canva.draw(0,0,backbild);//draw weil es für Anfänger einfacher ist 6.Hoffen, dass es läuft!

mfg
  Mit Zitat antworten Zitat