Schöne Spline durch Waypoints
Übersicht

![]() |
IguanBetreff: Schöne Spline durch Waypoints |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallöchen miteinander!
Ich komme wiedermal nicht weiter und brauche einen Rat von euch Profis! Ich habe einen Gegner, der Waypoints ansteuert. Pseudo: Code: [AUSKLAPPEN] AbstandX# = Gegner\SPX# - ZielX AbstandY# = Gegner\SPY# - ZielY Gegner\SPSollWinkel# = (ATan2#(AbstandX#,AbstandY#)+360) Mod 360 Wendigkeit# = 3 If Gegner\SPIstWinkel# < Gegner\SPSollWinkel# Then If Gegner\SPSollWinkel# - Gegner\SPIstWinkel# > 180 Then Gegner\SPIstWinkel# = Gegner\SPIstWinkel# - Wendigkeit# If Gegner\SPSollWinkel# - Gegner\SPIstWinkel# < 180 Then Gegner\SPIstWinkel# = Gegner\SPIstWinkel# + Wendigkeit# End If If Gegner\SPIstWinkel# > Gegner\SPSollWinkel# Then If Gegner\SPIstWinkel# - Gegner\SPSollWinkel# < 180 Then Gegner\SPIstWinkel# = Gegner\SPIstWinkel# - Wendigkeit# If Gegner\SPIstWinkel# - Gegner\SPSollWinkel# > 180 Then Gegner\SPIstWinkel# = Gegner\SPIstWinkel# + Wendigkeit# End If Gegner\SPIstWinkel# = Gegner\SPIstWinkel# Mod 360 If Gegner\SPIstWinkel# < 0 Then Gegner\SPIstWinkel# = 360 + Gegner\SPIstWinkel# Gegner\SPX# = Gegner\SPX# - (Sin(Gegner\SPIstWinkel#) * Gegner\Geschw#) Gegner\SPY# = Gegner\SPY# - (Cos(Gegner\SPIstWinkel#) * Gegner\Geschw#) Nun, soweit so gut... Ich möchte jetzt aber dass der Gegner nie gerade fliegt, sondern stets eine leichte kurve fliegt, die grösser oder kleiner sein kann. So entsteht dan eine schöne saubere Spline. Nur, wie mache ich das? Wendigkeit# müsste dann irgendwie von der Distanz des nächsten Waypoints, Der Soll-Ist-Winkeldifferenz und der GegnerGeschwindigkeit abhängig sein... mir fällt da leider keine passende Formel ein. kennt ihr eine Lösung für mein Problem? |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Arbeite vielleicht mit Beziersplinekurven, ich benutze dafür immer die 4. Grades. Dabei kannst du dann 4 Punkte festlegen, wobei der 2. und 3. immer die Start/Endpunkte sind. Wenn dein Raumschiff von einem zum nächsten Splineblock wandert, nimmst du einfach den 4. Punkt und führst eine Punktsymmetrische Spiegelung mit dem 3. durch. Dadurch erhältst du den neuen 1. Punkt des nächsten Splineabschnittes, welches dann nahtlos an das davor anschließt. Hier im Forum im Codearchiv stehen dazu ein paar Beispiele. Allerdings weis ich nicht wie man dort einen eine bestimmte Wendigkeit einbauen kann, da müsste ich jetzt etwas länger überlegen. Ansonsten hilft auch Wikipedia weiter:
http://de.wikipedia.org/wiki/Spline Oder habe ich dich jetzt vollkommen falsch verstanden? |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
![]() |
Iguan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Firstdeathmaker! Danke für deine Antwort!
Ich möchte gerne Splines, und keine Beziers, da der Gegner DURCH DIE WAYPOINTS fliegen soll. Dein Link über Splines könnte was bringen, nur bin ich kein Mathematiker und verstehe absolut nichts von diesem Zeichenwirrwarr. ![]() gibt es denn dafür wirklich keinen Beispiel code? (bei Splinemagic sind das ja beziers) So eine Kurve bräuchte ich: http://de.wikipedia.org/wiki/B...lation.png |
||
![]() |
Henry |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ähem, Splines entstehen in der Regel per Bezier Berechnung; eine andere Art wären die NURBS-Splines (non uniform rational b-splines), und Du möchtest gar nicht wissen, wie die berechnet werden.
Du kommst also nicht drum herum, die mit dem Thema Bezier auseinanderzusetzen. |
||
Aiya Eärendil Elenion Ancalima!
All you have to decide is what to do with the time that is given to you. • Robsite.de ist eine Anlaufstelle für Tutorials und Tools, die Noobs das Leben leichter machen! • Forensuche ist nicht nur als Lückenfüller in den oberen Links gedacht! |
![]() |
Iguan |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, danke! hast wohl recht! | ||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
schau mal nach "catmull rom spline" - das ist recht einfach... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutze mal die Forum-Suche. Gab schon einige Threads, in denen Splines und Bezier-Splines diskutiert wurden, samt fertigen Funktionen und allem drum und dran. Ist hilfreicher, als im Web nach mathematischen Theorien zu suchen. | ||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group