Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mai 16, 2024 03:53

Foren-Übersicht » Programmierung » Mathematik-Forum
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Mi Jul 04, 2007 17:07 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

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)
Bild

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?

Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 04, 2007 18:45 
Offline
Ernährungsberater
Benutzeravatar

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.

_________________
Steppity,steppity,step,step,step! :twisted:
❆ ❄ ❄ ❄ ❅ ❄ ❆ ❄ ❅ ❄ ❅ ❄ ❅ ❄ ❄
❄ ❄ ❄ ❅ ❄ ❄ ❄ ❅ ❄ ❄ ❆ ❄ ❄


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 04, 2007 21:30 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Für solche Sachen ist die Verlet-Integration ganz gut zu gebrauchen:
http://www.gamedev.net/reference/progra ... es/verlet/

Man braucht die Kugel nur in jedem Schritt wieder in die Röhre rein zu drücken, wenn sie außerhalb liegt. Die Bewegung passt sich dann automatisch an.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 04, 2007 21:45 
Offline
DGL Member
Benutzeravatar

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.

Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Mathematik-Forum


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.022s | 17 Queries | GZIP : On ]