Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Probleme beim Zeichnen eines Pendels (https://www.delphipraxis.net/8649-probleme-beim-zeichnen-eines-pendels.html)

scuril01 9. Sep 2003 15:08


Probleme beim Zeichnen eines Pendels
 
Also ich muss für mein Studium ein Program schreiben indem eine Graphik bearbeitet wird, d.h. zum beispiel hab ich ein pendel, welches abhänig von der Seillänge eine unterschiedliche Periodendauer hat, das berechen bekomm ich hin, aber ich weiss nicht wie ich das in deine Graphik einbauen kann?!
Es wäre schön wenn dort mal wer schauen kann. Ich arbeite mit Delphi 6.
Also die Berechnung funtioniert folgendermaßen: Ich kann über eine Edit-Komponente die gewünschte Länge des pendels eingeben, auf Knopfdruck rechnet dann ddas Program die Priodendauer aus und gibt sie dann ebenfalls über eine Edit-Komponente aus. Ich weiss nicht, ob das der richtige Weg ist um dieses zu realisieren. Ich könnte bestimmt auch eine Tabelle anfertigen.
Aber vielleicht geht es auch so.
Es wäre supertoll, wenn Ihr mir das irgendwie an einem Bsp oder in kurzen Worten erklären könnt....... DANKE

[edit=sakura]Doppelpost gekillt. Mfg, sakura[/edit]

Tpercon 9. Sep 2003 15:12

Re: Probleme beim Zeichnen eines Pendels
 
Das Pendel wirst du ja wohl auf irgend ein Canvas (von TImage oder TPaintBox) zeichnen. Dazu brauchst du doch nur die Auslenkung zu den Zeitpunkten.

scuril01 9. Sep 2003 15:16

Re: Probleme beim Zeichnen eines Pendels
 
und genau da liegt das Problem, ich bin was Delphi angeht eine absolute Niete. Ich weiss nur das es mit Graphik geht, allerdings kenn ich den Text nicht dazu, was soll ich denn da machen???

Tpercon 9. Sep 2003 15:21

Re: Probleme beim Zeichnen eines Pendels
 
Möchtest du das als Animation laufen lassen, oder wie soll das aussehen?

Code:
|\
| \
|  O
Du mußt also irgendwie rechnerisch an den Punkt kommen (ausgehend von der Pendelaufhängung), wo die Kugel sich befindet.

scuril01 9. Sep 2003 15:36

Re: Probleme beim Zeichnen eines Pendels
 
Genau das.... und ich hab keine ahnung wie ich das anstellen soll. also wie gesagt die Betrechnung schaffe ich über die beiden Edit-Felder, aber die Graphik weiss ich nicht.

Tpercon 9. Sep 2003 15:39

Re: Probleme beim Zeichnen eines Pendels
 
Dann schaue dir mal MoveTo und LineTo zum Zeichnen der Linie an!

scuril01 10. Sep 2003 14:25

Re: Probleme beim Zeichnen eines Pendels
 
OK die hab ich mir jetzt angeschaut, allerdings sagt mir dfas recht wenig, es geht darum wie ich diese jetzt progrmmieren muss.. Ja ich weiss ich stelle mich an wie der erste mensch, aber ich habe davon nun einmal fast 0 ahnung

Tpercon 10. Sep 2003 14:30

Re: Probleme beim Zeichnen eines Pendels
 
Code:
1
|\
| \
|  \
|   2
Du mußt doch nur die Koordinaten von 1 und 2 wissen. Kannst du die 2 in Abhängigkeit von 1 berechnen, wenn ja wie?

Stanlay Hanks 10. Sep 2003 14:36

Re: Probleme beim Zeichnen eines Pendels
 
Hi. Du zeichnest eine Kugel auf ein Canvas und merkst dir deren Koordinaten in einer Varibalen. Dann berechnest du die nächste Koordinate. Wenn du die hast, überzeichnest du zuerst die alte Kugel mit der Hintergrundfarbe (weiß oder was auch immer) und zeichnest dann eine neue Kugel auf die gerade errechneten Koordinaten. Von der speicherst du dann wieder die Koordinaten usw...
Ich hoffe, das hat dir geholfen :wink:

Man liest sich, Stanlay :hi:

Gandalfus 10. Sep 2003 15:51

Re: Probleme beim Zeichnen eines Pendels
 
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:

Delphi-Quellcode:
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:

Delphi-Quellcode:
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?

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

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz