Webdesign in Siegen

Formel benötigt!

Alle Meisterwerke, die nicht in die anderen Kategorien passen, gehören hier hin. (Film, Spiel usw.)

Formel benötigt!

Beitragvon Cell am 23.04.2008, 19:40

Also, ich will programmieren, dass ein Programm, welches ich schreibe, und ihm 2 Punkte gebe, Anfangs und Endpunkt von einem Objekt, welches animiert werden soll, und will diese beiden punkte mit einem Halbkreis verbunden haben.

Welche Formel brauch ich dafür? Stehe momentan total aufm schlauch!

Bitte helft mir :)

Gruß
Buh :p
Benutzeravatar
Cell
Mitglied
 
Beiträge: 705
Registriert: 13.08.2005
Wohnort: Nähe Münster

Re: Formel benötigt!

Beitragvon Karl am 23.04.2008, 21:13

Du möchtest also die zwei Punkte per Halbkreis verbinden. Ich würde sagen: Strecke zwischen den Punkten ausrechnen lassen, dann mal pi und du hast den Umkreis der zwischen diesen Punkten liegt. Dann müsstest du wahrscheinlich angeben ob der obere oder untere Teil der Stecke genutzt werden soll. So vom mathematischen her. Hab von programmieren her keine Ahnung, also wenns nicht weiterhilft bitte nicht steinigen :devil:
Benutzeravatar
Karl
Mitglied
 
Beiträge: 795
Registriert: 26.08.2007

Re: Formel benötigt!

Beitragvon Cell am 23.04.2008, 21:22

Soweit war ich auch schon, problem wird nur sein, woher weiß er wie er einen halbkreis zeichen soll?

Da musser ja erst zb 3 nach links 1 nach oben (in px) und dann iwann 2-1 dann 1-1 dann -1, 1 usw.. damit n kreis entsteht!

Cosinus wäre da angebracht glaube ich, nur ne direkte lösung habe ich nicht parat.. Wer kann dahelfen? :D
Buh :p
Benutzeravatar
Cell
Mitglied
 
Beiträge: 705
Registriert: 13.08.2005
Wohnort: Nähe Münster

Re: Formel benötigt!

Beitragvon Chris am 23.04.2008, 21:23

Aber wenn deine Punkte in allen 3 Achsen unterschiedliche Koordinaten haben kommt dazu, dass du erst die Strecke für die Punkte mit min. einer gleichen Koordinate ausrechnen musst... Klingt nach Vektorrechnung... der vektor V zieht sich von Punkt (x1,y1,z1) zu (x2,y2,z2) und besitzt eine Spalte und 3 Zeilen... Der Betrag des Vektors müsste der Abstand der Punkte sein. Multipliziert mit PI ergibt das den Halbkreis... Aber die Frage ist, ob rechts rum oder links rum...

edit: Guck das hier mal in Ruhe durch: http://www.tf.uni-kiel.de/matwis/amat/m ... 3_1_1.html
Das Mutterschiff befindet sich hier im Orbit. Wenn wir das zerstören, fällt der Rest der Dominosteine wie ein Kartenhaus in sich zusammen...Schachmatt! - Zapp Brannigan
Benutzeravatar
Chris
Moderator
 
Beiträge: 2813
Registriert: 26.01.2006
Wohnort: Halle/Saale

Re: Formel benötigt!

Beitragvon Ingo am 23.04.2008, 21:52

Hi. Hörte ich das Wort "Formel"? *angetrabt komm*

Im 2-dimensionalen ist das Problem noch leicht lösbar, im 3-dimensionalen: wird etwas komplizierter,
siehe auch Link von Chris. Könnte da ggf. genauer werden. Ich mach da mal nen Vorschlag:

Das zeug da unten sieht zwar, wenn man das in Koordinaten ausrechnet, etwas aufwendig aus. Das liegt
aber nur daran, dass wir hier in einem rechtwinkligen Koordinatensystem eine Kreisbewegung ausführen,
wofür wir eine Drehmatrix nutzen. Außerdem ist die Situation aus dem Ursprung heraus verschoben -
wir rotieren um einen beliebigen Mittelpunkt, deswegen die vielen +/-m1,m2-Terme. - Bei Bedarf Näheres ;o))

Im Prinzip mache ich folgendes: ich verschiebe die Situation in den Ursprung, drehe den Startpunkt (P)
mit Hilfe einer Drehmatrix und verschiebe den Ergebnisvektor wieder an die ursprünglichen Koordinaten -
grob gesagt :o). And now for the gory details (ohne Gewähr, ich habs noch nicht getestet):

Seien P = (p1,p2), Q = (q1,q2) die beiden Punkte.

Dann ist der Mittelpunkt zwischen P und Q gerade M = (m1, m2), wobei

m1 = (p1+q1)/2 und

m2 = (p2+q2)/2

Das ist zugleich der Mittelpunkt des gesuchten Kreises.

Nun gibt es ja 2 Halbkreise, auf denen man sich bewegen kann - oben lang und unten lang.
Wir wählen einfach einen aus. Unser Zeit-Parameter heiße t. Dann beschreibt folgende
Formel den Weg von P nach Q längs eines Halbkreises:

Pos(t) = ( posx(t), posy(t) ) wobei

posx(t) = (p1-m1)*cos(t) - (p2-m2)*sin(t) + m1

posy(t) = (p1-m1)*sin(t) + (p2-m2)*cos(t) + m2

Läßt man nun t von 0 bis 180 (Grad) laufen, dann bewegt sich Pos(t) auf einem Halbkreis
zwischen P und Q.

Möchte man den anderen Halbkreis haben, ersetzt man t durch -t.

Falls sin und cos nicht im Gradmaß rechnen (Vollkreis hat 360 Grad), sondern im Bogenmaß
(Vollkreis hat 2*Pi), dann läßt man t von 0 bis Pi laufen (3.14159).

BTW: Sollte die Drehung im dreidimensionalen Raum stattfinden, so wird's noch etwas fieser:
denn dann haben wir nicht nur 2 Halbkreise zur Wahl, sondern eine ganze Kugel, auf der wir
langlaufen können ... wir könnten uns dann zum Bleistift auf eine Rotationsebene festlegen ...

Gruß, Ingo :)
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 578
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Formel benötigt!

Beitragvon Cell am 23.04.2008, 21:58

Hui danke für die Antworten!

Ich denke es wird, vorerst, nur im 2 dimensionalen Stattfinden, wenn auch im 3dimensionalem raum.

Also X wird eigtl immer gleich bleiben nur halt verschiebung X und Z. Ist ja dann denke ich weniger n problem!

Aber ich muss gestehen dass ich jetz grade keine Zeit hab alles was ihr geschrieben habt zu lesen, mach ich morgen! Werde dann bescheid geben obs geklappt hat oder nicht :)!

Danke aufjedenfall schonmal!
Buh :p
Benutzeravatar
Cell
Mitglied
 
Beiträge: 705
Registriert: 13.08.2005
Wohnort: Nähe Münster

Re: Formel benötigt!

Beitragvon Chris am 23.04.2008, 22:01

Okay, Ich habs verstanden... Aber sollte das nicht mit dem Vektor genauso funktionieren? Der zeigt doch von P in Richtung Q oder? Als Betrag wäre das dann die Strecke PQ... Oder hab ich nen Denkfehler drin?
Das Mutterschiff befindet sich hier im Orbit. Wenn wir das zerstören, fällt der Rest der Dominosteine wie ein Kartenhaus in sich zusammen...Schachmatt! - Zapp Brannigan
Benutzeravatar
Chris
Moderator
 
Beiträge: 2813
Registriert: 26.01.2006
Wohnort: Halle/Saale

Re: Formel benötigt!

Beitragvon Ingo am 23.04.2008, 22:10

Ich denke da wie du auch in Vektoren: Nur habe ich das Ganze gleich in Koordinaten aufgelöst
hingeschrieben, damit man es einfacher in Programmform übersetzen kann.

Im Kern geht es natürlich um den Vektor PQ und den Mittelpunkt M zwischen P und Q, den ich dann
mit (OP + OQ )/2 (wobei OP: Ortsvektor nach P ...) vektoriell ausrechne; in Koordinaten wird dann
eben (p1+q1)/2 ... daraus.
Die Formel für Pos müsste in Vektoren wohl etwa so lauten: Pos(t) = Drehmatrix(t) * (OP - OM) + OM.
Auch das habe ich einfach in Koordinaten aufgelöst hingeschrieben. - Mal sehen, ob's hinhaut :lol:

Edit: Ich hänge nochmal n Bild dran, wie ich mir das gedacht habe. (GeoGebra, sehr nützliches Stück Weichware.)
Edit 2: ... und die GeoGebra-Datei (gezippt), falls jemand damit 'rumspielen möchte.
Dateianhänge
drehung_wrap.zip
drehung.ggb (gezippt)
(1.63 KiB) 5-mal heruntergeladen
drehung.png
drehung.png (13.44 KiB) 206-mal betrachtet
Zuletzt geändert von Ingo am 24.04.2008, 00:18, insgesamt 3-mal geändert.
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 578
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Formel benötigt!

Beitragvon Chris am 23.04.2008, 22:17

aso... weil das Programm ja keine Vektoren lesen kann... :wink:

GeoGebra... Glei mal gespeichert...
Das Mutterschiff befindet sich hier im Orbit. Wenn wir das zerstören, fällt der Rest der Dominosteine wie ein Kartenhaus in sich zusammen...Schachmatt! - Zapp Brannigan
Benutzeravatar
Chris
Moderator
 
Beiträge: 2813
Registriert: 26.01.2006
Wohnort: Halle/Saale

Re: Formel benötigt!

Beitragvon blackdot am 23.04.2008, 23:49

Nur so nebenbei: Müsste ich das als Gimniasiast im 3tten Jahr (bzw. 12ten gesamt) können? Sinus, cosinus usw. kenn ich zwar, allerdings hätt ich das nie gekonnt.

Sry, ist eigentlich nicht so wichtig.. :duckweg:
Bild
Benutzeravatar
blackdot
Mitglied
 
Beiträge: 2682
Registriert: 19.07.2005
Wohnort: St. Gallen, Schweiz

Re: Formel benötigt!

Beitragvon Chris am 24.04.2008, 10:18

Vektorrechnung sollte man schonmal gehört haben... Aber eigentlich nur im Leistungskurs... :wink:
Das Mutterschiff befindet sich hier im Orbit. Wenn wir das zerstören, fällt der Rest der Dominosteine wie ein Kartenhaus in sich zusammen...Schachmatt! - Zapp Brannigan
Benutzeravatar
Chris
Moderator
 
Beiträge: 2813
Registriert: 26.01.2006
Wohnort: Halle/Saale

Re: Formel benötigt!

Beitragvon Avedo am 24.04.2008, 12:28

Morgen!
Mein Mathelehrer hat da auch ein ganz schönes Programm gechrieben heißt Archimedes Geo 3D. Kann man nur empfehlen, wenn es um das Verhalten von Figuren im zweidimensionalen oder auch dreidimensionalen Raum geht. Das schöne ist, dass man da auch die Abhängigkeit von Variabeln durch Schieberegler darstellen kann. Ein guter Tipp, wenn man irgendwelche Grafischen Sachen Programmieren möchte. Es ist übrigens meiner Meinung nach unumgänglich an diese Sache mit Vektoren ranzugehen. Eine Alternative zur Berechnung der Kreisbahn wäre übrigens diese hier:
wurzel( r² - x²)
Diese Funktion gibt einen Halbkreis oberhalb de x-Achse aus. r ist der Radius dieses Halbkreises. Wenn du also den Punkt M auf P(0|0) legst, kannst du mit der Strecke PM oder MQ für den Radius r einen Halbkreis zwischen PQ aufspannen.
MfG, Andy
Ich bin zu Mimis Religion konvertiert!
I'm so tired of slitting the throats of people calling me a violent psychopath.
Benutzeravatar
Avedo
Mitglied
 
Beiträge: 553
Registriert: 09.12.2007
Wohnort: Göttingen

Re: Formel benötigt!

Beitragvon Cell am 24.04.2008, 15:00

Ui danke für die vielen Beiträge

Das mit den Vektoren, die Sprache womit ichs umsetzen will kann mit Vektoren arbeiten! Wenns also damit einfacher ist, immer hjer damit :D
Buh :p
Benutzeravatar
Cell
Mitglied
 
Beiträge: 705
Registriert: 13.08.2005
Wohnort: Nähe Münster

Re: Formel benötigt!

Beitragvon Ingo am 24.04.2008, 20:44

Hm, kann die Sprache auch mit Matrizen umgehen? Falls ja, dann ist im Anhang (pdf, gezippt ...)
eine kurze Anleitung, die das, was ich oben schrieb, einfach in Vektorform darstellt; das ist dann
bedeutend kürzer. (Falls Matrizen nicht gehen, dann vielleicht das Skalarprodukt? Wie auch immer.)
Dateianhänge
drehung.pdf.zip
(24.03 KiB) 6-mal heruntergeladen
Die beste Browserweiche ... sitzt zwischen den Ohren ;o]
Benutzeravatar
Ingo
Moderator
 
Beiträge: 578
Registriert: 01.04.2007
Wohnort: Neuss/NRW

Re: Formel benötigt!

Beitragvon Cell am 24.04.2008, 20:45

Matrizen??

Meinst du Matrixen? Ja die gehen. Quaternions gehen auch ;D

das D(t) = , was soll das hinter der klammer sein? Ein bruch?

// Ahh sehe grade, das ist die "Matriz" .... Hmm ob das geht, keine Ahnung, ich schaus mal nach!
Zuletzt geändert von Cell am 24.04.2008, 21:04, insgesamt 1-mal geändert.
Buh :p
Benutzeravatar
Cell
Mitglied
 
Beiträge: 705
Registriert: 13.08.2005
Wohnort: Nähe Münster

Nächste

Zurück zu Sonstiges

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast