Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Epizykloide programm (https://www.delphipraxis.net/67253-epizykloide-programm.html)

Langa 11. Apr 2006 23:00


Epizykloide programm
 
Liste der Anhänge anzeigen (Anzahl: 2)
Guten abend sitze gerade an einem program

ich soll ein epizykloide simulieren
d.h. ein äußerer Kreis rollt um einen inneren mit einem punkt auf dem äußeren
der punkt beschreibt eine so genannte epizykloide die bahngleichung hab ich

so also meine probleme mein kreis außen ich hab keine ahnung wie ich das mache das der rollt

dann damit das ne simulation ist muss ja nach jedem timmer schritt sein das ein neus bild gemacht wird
das mit das so sieht als ob der kreis rollt nur der bahn muss gezeichnet werden

hoffe ihr versteht das und könnt mir helfen

hab mein prog bis jetzt schon mal angehangen

netscanner 11. Apr 2006 23:24

Re: Epizykloide programm
 
und was soll jetzt noch gemacht werden?????

Langa 11. Apr 2006 23:39

Re: Epizykloide programm
 
Liste der Anhänge anzeigen (Anzahl: 1)
es soll so aussehen al sob der äußere kreis um den anderen rollt

das tut er ja nich er bleibt star wenn er rollt bewegt sich ja der rote punkt auf den äußeren kreis mit
da ich alles in eine bitmap mache sieht das so aus wie es ist

es soll aberso sein das immer wenn der timer einen schritt macht ein neues bild kommt also es nach dem rollen aus sieht

hab schon ein ähnliches program mal gesehen was mein vorhaben evtl verdeutlicht

hab angehangen

netscanner 11. Apr 2006 23:51

Re: Epizykloide programm
 
wenn du es in bitmamps machst is es zwar leicht viel arbeit aber okey:
Der kreis in diesem Programm rollt nicht (von dem anderen) sondern
ändert immer nur die position, indem er einen neuen 2. kreis erzeugt.

Der Programmierer hat wahrsch. mit einer Schleife ausgerechnet wie viele Punkte der innere Kreis hat und hat dann über eine Formel die Position der Schnittpunktes (1. und 2. Kreis) errechnet.
Dann hat er mit dem OnTimer Event immer einen neuen Kreis erzeugt mit der Schnitt Position, diie er vorher immer ausrechnet.

Angaben ohne Gewähr. Kann sein dass ich mir total irre :duck:

Langa 11. Apr 2006 23:53

Re: Epizykloide programm
 
so weit war ich auch schon aber trotzdem bekomm ich das nicht hin
das ist mein problem weiß nich wie ich das programieren kann
bin total am ende.

Hoffe mir kann mal jemand ne formal sagen und sagen wie ich das rollen hin bekomme
wollte das mit ne zweiten bitmap machen aber das ging nicht :(

Jelly 12. Apr 2006 08:21

Re: Epizykloide programm
 
Ich werf mal 3 Stichworte in die Runde:
  • Lokale Koordinaten
  • Kugel (bzw.) Kreiskoordinaten
  • Überlagerung von 2 Kreisbewegungen
Du hast im Grunde 2 Bewegungen. Die eine ist die Kreisbewegug von Mittelpunkt des äusseren Kreises um den Mittelpunkt des inneren Kreises. Die zweite ist die Bewegung eines äusseren Punktes des kleinen Kreises um dessen Mittelachse... Und diese beiden Bewegungen muss du überlagern. Und weil sich alles im Kreise dreht, nutzz du am besten die Polardarstellung... Hier am Beispiel einer Kreisbewegung:

Ein Punkt r auf dem Kreis hat die Koordinaten

r(R,phi) = R*cos(phi)

Phi ist dein Winkel... Und da das Ganze sich dreht, geht die Zeit ein und die Winkelgeschwinigkeit:
phi = omega*t

Ich denk damit lass ich dich jetzt mal bichsen recherchieren ;-)

Langa 12. Apr 2006 23:19

Re: Epizykloide programm
 
Liste der Anhänge anzeigen (Anzahl: 1)
so hab es jetzt mal etwas vorangetrieben das ganze programm

aber halt der eine kreis kommt da nicht mit bekomm die formeln nicht hin um die koordinaten zu berechnen

:wall: bin wohl etwas verbohrt

häng das noch mal an vielleicht bekommt das hier jemand hin

achso wenn ihr mal dabei seid kann mir jemand sagen wieso die bitmaps nich beim start gleich angezeigt werden

hoffe ich komm durch eure hilfe voran

Khabarakh 13. Apr 2006 13:24

Re: Epizykloide programm
 
Zitat:

Zitat von Langa
bekomm die formeln nicht hin um die koordinaten zu berechnen

Parameterdarstellung:
Code:
x(t) = (r2 + r) * cos(r / r2 * t) - r * cos(t + r / r2 * t)
 y(t) = (r2 + r) * sin(r / r2 * t) - r * sin(t + r / r2 * t)
AFAIR war t der Winkel zwischen den zwei Radien im Mittelpunkt des zweiten Kreises.

Du kannst dir auch mal http://www.delphipraxis.net/internal...ct.php?t=53442 anschauen, aber versuch es erst einmal selbst ;) .

Langa 16. Apr 2006 14:40

Re: Epizykloide programm
 
Hm wird mir nich viel bringen denk ich mal da den winkel vom mittelpunkt des inneren kreises "hochzählen" lasse vom timer.

vielleicht hat ja jemand ne alternative als das was da so in den wikepdias und so rum schwirrt+

schöne ostern noch

Khabarakh 16. Apr 2006 19:31

Re: Epizykloide programm
 
Die beiden Winkel lassen sich ziemlich leicht ineinander umrechnen, schau es dir einfach mal auf einem Blatt Papier an.

Kleiner Tipp zu Ostern: Gleichlange Bögen an den beiden Kreisen


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:26 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz