ich habe ein neues Mathe Problem..
Und zwar, ich habe eine Röhre und eine Kugel... die Kugel hat eine Position und einen Richtungsvektor und soll von innerhalb der röhre fliegen, vom einen ende zum anderen.
Dafür gebe errechne ich ihren Richtungsvektor in jedem frame neu (EndeRöhre - AnfangRöhre -> Normalisiert). Klappt auch..
Jetzt kann es aber passieren, das die kugel nicht den direkt weg wählen soll, sondern mittendrin mal zur seite ausweicht.. der einfachheit halber sagen wir mal, jedesmal nachdem der richtungsvektor berechnet wurde, wird eine random-rotation drauf addiert.
Dadurch kann es ja nun passieren, das die kugel an den rand der röhre kommt und sie verlässt.. und genau das ist, was ich verhindern möchte
Wenn die kugel merkt "Oh, wenn ich in die richtung laufe, wo ich grad hinwill verlasse ich die röhre" soll sie sich so drehen das sie am röhrenrand entlangläuft.
Hier mal ein bild zur veranschaulichung (in 2D, ich brauche es dann später in 3D)
Daten die ich habe:
Anfangs und Endpunkt der röhre, sowie der radius der röhre am anfang und ende.
Und natürlich die kugel mit ihrer Position, Richtung und Radius.
Hat da irgendjemand eine tolle idee wie man das schön lösen könnte?
Registriert: Sa Jan 01, 2005 17:11 Beiträge: 2067
Programmiersprache: C++
Das Problem besteht doch nur dann wenn sich die Kugel mit Radius maximale_Bewegnung um die Kugel und der Röhre schneiden. In dem Fall musst du mit dem Zufallvektor entfallen lassen.
Registriert: Di Dez 27, 2005 12:44 Beiträge: 393 Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,
ich würd folgendermassen vorgehen :
1. Gerade vom Mittelpunkt der Anfangsröhre zum Mittelpunkt der Endröhre bestimmen (Differenz-Vektor berechnen).
2. Höhe des Kugelmittelpunktes entlang dieser Grade bestimmen (also das Lot vom Mittelpunkt auf diese Grade)
3. Radius der Röhre auf Höhe des Kugelmittelpunktes bestimmen
4. Prüfen ob Abstand Kugel-Grade + Radius Kugel > Röhrenradius bei 3.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.