![]() |
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] |
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.
|
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???
|
Re: Probleme beim Zeichnen eines Pendels
Möchtest du das als Animation laufen lassen, oder wie soll das aussehen?
Code:
Du mußt also irgendwie rechnerisch an den Punkt kommen (ausgehend von der Pendelaufhängung), wo die Kugel sich befindet.
|\
| \ | O |
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.
|
Re: Probleme beim Zeichnen eines Pendels
Dann schaue dir mal MoveTo und LineTo zum Zeichnen der Linie an!
|
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
|
Re: Probleme beim Zeichnen eines Pendels
Code:
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?
1
|\ | \ | \ | 2 |
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: |
Re: Probleme beim Zeichnen eines Pendels
1. du nimmst dir ein Backbild(schneller und kein flimmern)
Delphi-Quellcode:
Ab hier kommen alle Punkte in einen Timer mit Intervall 55
Var
Backbild: TBitmap; oncreate: backbild := TBitmap.create; backbild.width := Form1.width; backbild.height:= Form1.height; (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:
4. Jetzt musst du noch den aktuellen standpunkt des Pendels bestimmen.
backbild.canvas.moveto[50,50];
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: ![]() ist das ziel oder sehe ich das falsch?
Delphi-Quellcode:
und vieleicht noch ein Kugel bild
backbild.canvas.moveto[errechneterPunkt];
Delphi-Quellcode:
5. Das gesamte HIntergrund bild wir jetzt auf das Formular kopiert
backbild.canvas.draw(errechneterPunkt,Image1.bitmap);
Delphi-Quellcode:
6.Hoffen, dass es läuft!
Form1.canva.draw(0,0,backbild);//draw weil es für Anfänger einfacher ist
mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz