Seite 1 von 1
AddSplinePoint(), Beschreibung in der Hilfe
Verfasst: 14.07.2013 21:00
von Makke
Hallo zusammen,
In der Spline Beschreibung steht, das die Zeit zwischen den Punkten immer gleich ist.
Wenn ich also eine Strecke habe, diese dann durch eine Geschwindigkeit Teile, habe ich den Wert X und erstelle dann soviele SplinePunkte. Und mein Modell rennt dann diese Punkte ab.
Aber, wenn ich jetzt eine größere Entfernung nehme, wird das Modell schneller. Hat jemand schon damit Erfahrungen ?
Wenn Code benötigt wird, reiche ich den gerne noch nach.
Re: AddSplinePoint(), Beschreibung in der Hilfe
Verfasst: 14.07.2013 21:55
von NicTheQuick
Also ich kapiere gerade gar nicht, was du uns sagen willst. Mir sind zwar keine Begriffe unklar, aber die Beschreibung ist meiner Meinung nach etwas dürftig. Kannst du genauer erklären, was du machen willst? Oder eben deinen Code zeigen plus Beschreibung?
Re: AddSplinePoint(), Beschreibung in der Hilfe
Verfasst: 15.07.2013 12:38
von Chimorin
Du fütterst deinen Weg eben mit so vielen gleichmäßig verteilten(!) Punkten, dass dein Modell die vorgeschriebene Geschwindigkeit hat.
Von Knoten zu Knoten verbringt er immer die gleiche Zeit, d.h., je länger der Weg von Knoten zu Knoten ist, desto höher ist die Geschwindigkeit.
Re: AddSplinePoint(), Beschreibung in der Hilfe
Verfasst: 15.07.2013 20:10
von Makke
Hallo Ihr,
sorry für die dürftige Beschreibung, hier nochmal etwas genauer:
In der Beschreibung zum Spline: "Die Zeit, um von einem Punkt zum nächsten zu gehen, ist immer die gleiche, unabhängig von der Entfernung zwischen diesen Punkten."
Ich habe bisher folgendes gemacht (PseudoCode):
Code: Alles auswählen
maxpoints = distance / speed
stepx = distancex / distance
stepz = distancez / distance
CreateSpline(#Waypoint)
for n = 1 to maxpoints
AddSplinePoint(#Waypoint, stepx * n, 0, stepz * n)
next
AddSplinePoint(#Waypoint, newx, 0, newz) ; als letzten Punkt, der Zielpunkt
Damit hatte ich dann die Spline Punkte, ich bin jetzt davon ausgegangen, das ComputeSpline() von Punkt zu Punkt berechnet wird, also wenn ich von 0 bis 1 hochzähle, das die die Zeit von den einzelnen Punkten dort oben ist, dem ist aber nicht so, ComputeSpline zählt vom ersten Punkt bis zum letzten Punkt von 0 bis 1. Also musste ich die Geschwindigkeit auch noch bei der Schleife berücksichtigen (PseudoCode):
Code: Alles auswählen
animstep = 0
While NotAmZiel ;-)
n = speed / distance
animstep +n
ComputeSpline(#Waypont, n)
nextx = SplineX()
nextz = SplineZ()
MoveEntity(#Puppe, nextx, 0, nextz, #PB_Absolute)
Wend
Nach einigem rumprobieren bin ich dann dahinter gekommen, trotzdem Danke für die Tips.