Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Chase

Alter Hase

  • »Chase« ist der Autor dieses Themas

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

1

01.07.2006, 17:12

Sonderfaelle bei Vektorrechnung / Programmierstil

Ist ne eher theoretische Frage, daher versuch ich mal auf Code zu verzichten.
Mir geht es darum einen Richtungsvektor zu veraendern, aber nur um einen maximalen Winkel α ! Es gibt einen normalisierten Vektor A der die aktuelle Richtung angibt und einen Zielvektor B der die gewuenschte Richtung angibt. Im Grunde gehe ich so vor, dass ich das Verhaeltniss zwischen α und dem Winkel zwischen A und B bestimme und mit diesem Wert zwischen A und B interpoliere (und dann normalisiere). Das klappt soweit gut, aber es gibt einen Sonderfall: Was passiert wenn die Richtungen genau entgegengesezt sind und mit 0.5 interpoliert wird? Der berechnete Vektor waere 0 was als Richtungsvektor ziemlich ungeeignet ist.
Meine Frage ist jetzt: Ist dieser Spezialfall unwarscheinlich genug um ihn ausser Acht zu lassen, oder sollte man zur Sicherheit beispielsweise zu jeder Komponente 0.001 addieren? Vielleicht uberseh ich auch irgendwas oder verfolge einen komplett falschen Ansatz..
(Ich hatte schon sehr oft abgewandelte Versionen dieses Problems, schon bei einfachen Aufgaben wie etwa einer Funktion die einen 2D-Vektor als Winkel ausgibt)
Danke schon mal falls sich jemand all das durchgelesen hat, ich konnte es irgendwie nicht kuerzer fassen :)
"Have you tried turning it off and on again?"

Phili

unregistriert

2

01.07.2006, 18:06

Soweit ich weiß ist dein Lösungsvorschlag mit der Addition von ner sehr kleinen Zahl genau richtig.

Chase

Alter Hase

  • »Chase« ist der Autor dieses Themas

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

3

01.07.2006, 18:25

Selbst wenn ich auf diese Weise einen unzulaessigen Richtungsvektor vermeide, wird nicht wirklich 'schoen' interpoliert.
Kann es sein dass eine lineare Interpolation bei einem Richtungsvektor unangebracht ist ? "Punkte" zwischen zwei Richtungsvektoren sollten ja auf einem Kreisbogen und nicht auf einer Geraden liegen. Durch das Normalisieren entsteht zwar eine Annaeherung aber ich glaube ich bin da auf dem falschen Weg
"Have you tried turning it off and on again?"

Phili

unregistriert

4

01.07.2006, 19:14

Und wie willst du in deinem Fall den Winkel interpolieren? Kann ja auch rechtsrum und linksrum sein(wenn irgendjemand versteht was ich mein)

Chase

Alter Hase

  • »Chase« ist der Autor dieses Themas

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

5

01.07.2006, 20:16

Durch das Addieren von einem sehr kleinen Wert eruebrigt sich die linksrum-rechtsrum-Frage.
Jetzt hab ich zur Verdeutlichung extra meine MS-Paint-skills angeworfen und das Forum unterstuetzt keine Bilder. Naja, hier kann man sehen wo das Problem liegt. Bei einem relativ kleinen Winkel macht es nichts aus linear zu Interpolieren, aber bei grossen Winkeln wuerde die Drehung ziemlich ruckelig aussehen. Bin mir fast sicher dass da eine andere Interpolationsmethode her muss. Wird bestimmt irgendwas quadratisches sein :D
"Have you tried turning it off and on again?"

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

6

01.07.2006, 23:29

Beschäftige dich mal mit Quaternions. Die kann man auch korrekt interpolieren.

Chase

Alter Hase

  • »Chase« ist der Autor dieses Themas

Beiträge: 753

Wohnort: Nagaoka / Darmstadt / Düsseldorf

Beruf: fauler Studi

  • Private Nachricht senden

7

01.07.2006, 23:42

Danke fuer den Tipp, auch wenn mich der blosse Anblick des Wikipedia-Artikels schon vom Stuhl gehauen hat..

Ich hab in deinem Buch gerade den Abschnitt ueber die Hermite-Interpolation gefunden, waere damit eine Annaeherung denkbar? Dann verzichte gerne auf mathematische Korrektheit :)
"Have you tried turning it off and on again?"

CW_Kovok

Alter Hase

Beiträge: 836

Wohnort: nähe Bonn

Beruf: Schüler

  • Private Nachricht senden

8

14.07.2006, 09:08

sry fürs ausgraben aber such mal nach Spherical Linear interpolation, dann wirste fündig, ist eigentlich ganz leicht
Was es alles gibt, das ich nich brauche - Aristoteles

Werbeanzeige