Kurven berechnung mit start/Ziel cord .....

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

tft

Betreff: Kurven berechnung mit start/Ziel cord .....

BeitragSo, Okt 16, 2005 11:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi....

ich binn mathematisch nicht besonders bewandert. Brauche aber einen Algo der folgendes macht.

Ich habe die xyz cords von zwei positionen und die Drehwinkel des Objectes bei start und ziehl. Ich möchte ähnlich einer Bezierkurve zwischen start und ziehl 1-x anzahl positionen berechnen um zum beispiel mehrer Objecte dazwischen zu postieren.

Hat jemand sowas schon mal gemacht und hatt fieleicht ein beispiel.....

Was ich bis jetzt in den Forum themen gefunden habe hat mir leider nicht weitergeholfen...... mangelndes verständniss Smile
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Vertex

BeitragSo, Okt 16, 2005 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Siehe http://astronomy.swin.edu.au/~...rpolation/

Bézierkurven werden dir nicht viel Helfen. Quadratische Bézierkurven gehen durch ihren Start- und Endpunkt, benötigen jedoch einen Stützpunkt den du sicherlich nicht hast.

Die Drehung der Objekte kannst du über lineare Interpolation machen.
Pitch = Pitch1*(1.0-t) + Pitch2*t
Yaw = Yaw1*(1.0-t) + Yaw2*t
Roll = Roll1*(1.0-t) + Roll2*t
Pitch1 und Pitch2 sind Start- und Endpitchwinkel. T ist die Zeit und geht von 0.0 bis 1.0 (ist mu auf der verlinkten Seite).

mfg olli
vertex.dreamfall.at | GitHub

tft

BeitragSo, Okt 16, 2005 12:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi...

wie immer eine vortreffliche info....... Danke.
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

tft

BeitragSo, Okt 16, 2005 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi....

ich merke schon...... ich werde wohl alt. Ich verstehe nichts von alle dem. Sodas ich es nicht auf 3D erweitern kann..... ganz schön frustrierend. Also wenn sich einer erbarmt..... könnte eine vertige funktion gebrauchen.

.............. wie deprimierend.
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Vertex

BeitragSo, Okt 16, 2005 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
double CubicInterpolate(
   double y0,double y1,
   double y2,double y3,
   double mu)
{
   double a0,a1,a2,a3,mu2;

   mu2 = mu*mu;
   a0 = y3 - y2 - y0 + y1;
   a1 = y0 - y1 - a0;
   a2 = y2 - y0;
   a3 = y1;

   return(a0*mu*mu2+a1*mu2+a2*mu+a3);
}


Code: [AUSKLAPPEN]
Function CubicInterpolate#(y0#, y1#, y2#, y3#, mu#)
   Local a0#, a1#, a2#, a3#, mu2#
   
   mu2# = mu#*mu#
   a0# = y3# - y2# - y0# + y1#
   a1# = y0# - y1# - a0#
   a2# = y2# - y0#
   a3# = y1#
   
   Return (a0#*mu#*mu2#+a1#*mu2#+a1#*mu2#+a2#*mu#+a3#)
End Function


Wie darf man sich das jetzt vorstellen?:
user posted image

Du hast mehere Punkte der Kurve gegeben. Du kannst aber nicht die gesamte Kurve abfahren(das wäre eine riesen Formel) sondern nur Segmente. Ein Segment ist nur eine Teilstrecke zwischen 2 Punkten. Man fährt also von einem Punkt zum anderen. Dafür gibt es verschiedene Varianten. Lineare Interpolation fährt von Punkt0 zu Punkt1 geradlinieg. Kosinus Interpolation bildet eine Kurve von Punkt0 zu Punkt1. Bei deiner Kurve hast du jedoch mehr Punkte zur Verfügung.
Um nun noch die benachtbarten Punkte mit in die Segmentkurve einzubinden, kann man die kubische Interpolation benutzen. Du fährst z. B. von Punkt1 zu Punkt2 beziehst jedoch den linken Nachbarpunkt Punkt0 und den rechten Nacharpunkt Punkt3 ein. Allgemeint fährst du von N zu N+1 und beziehst dabei N-1 und N+2 mit ein.

Du kannst CubicInterpolate jetzt auf ALLE 3 Achsen anwenden. Du fährst von Punkt N(hier ist t bzw. mu = 0.0) zu N+1(hier ist t bzw. mu = 1.0) in dem du t von 0.0 bis 1.0 je nach Detailgrad z. B. um 0.01 hoch zählst.

Das machst du nun für jedes Kurvensegment.

mfg olli
vertex.dreamfall.at | GitHub

tft

BeitragSo, Okt 16, 2005 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi...

also die Function an sich ist klar......... würde das dann bedeuten das ich die Berechnung einmal für x/y und einem für y/z machen muss und dann die YXZ position nur daraus zu bilden brauch? Wenn das sie lösung ist. Muss ich zum schräcken aller 40,er sagen....... mit dem alter wird das denken Schwieriger.... die Lösungen aber immer einfacher.
Danke für deine Mühen mir das verständlich zu machen......
TFT
https://www.sourcemagic.ch
Monkey,HTML5,CSS3,W 10 64 Bit, 32 GB Ram, GTX Titan, W8 ist Müll !!!!!!

Vertex

BeitragMo, Okt 17, 2005 0:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Im Grunde sollte es schon auf X, Y und Z angewandt werden.
https://www.blitzforum.de/viewtopic.php?t=4945
Mit 40 schon, da bekommt man es ja mit der Angst zu tun Smile Naja, solange du nicht anfängst Schlager zu hören, ist alles noch im Lot.
mfg olli
vertex.dreamfall.at | GitHub

x-pressive

BeitragMo, Okt 17, 2005 13:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie wär's damit?

Topic

Beschreibt eine Methode zur Berechnung einer Sprungkurve, wenn Start- und Zielkoordinaten bekannt sind.
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group