| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| immer gerne hier Registriert seit: Sep 2005
Beiträge: 347
| [Mathe] Punkt zu Punkt, dazwischen interpolieren
Hallo Leute Ich mache ein kleines Spiel, dort bewegen sich MovieClips von einem Punkt zum andern. Die Punkte sind in ein 2 dimensionales array geschrieben, also Punkt eins ist auf (Point[0][0] / Point[0][1]). Null ist X, 1 ist Y. Wenn ich jetzt aber meine Objekte fliegen lasse, dann machen sie so spitz kehrt und fliegen gerade von Punkt zu punkt, was sehr hässlich aussieht, als wäre das game schnell hingehackt worden. Jetzt würde ich gerne zwischen den Punkten interpolieren, um dem Weg die scharfen Ecken zu nehmen. Ich weiss dass das mit sinus und kosinus geht, ich kann einen MC auch auf einem Kreis fahren lassen und habe grundlegende Kentnisse aber da hört es auch schon auf . Wie man DAS macht, weiss ich nicht.Hier liegt noch ein Bild bei, die Gestrichelten Linien sind der hässliche Direktweg, während die dicke Linie eine schöne Kurve zieht (wie gewünscht). ![]() Ich wäre wirklich sehr froh um Hilfe oder ein Tutorial. Danke im Voraus Gruss Kenji
__________________ Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft. Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal Interese für: Sicherheit, Kryptologie, Performance |
| | |
| | #2 (permalink) |
| voidboy Registriert seit: Sep 2004 Ort: München
Beiträge: 5.588
|
Vielleicht hilft dir das etwas: Bézierkurve Ansonsten könntest du mal bei google suchen ob du da etwas zum Thema Pathfinding findest, dort besteht ja das gleiche Problem. Geändert von rendner[i] (07-05-2008 um 09:23 Uhr) |
| | |
| | #3 (permalink) |
| immer gerne hier Registriert seit: Sep 2005
Beiträge: 347
|
Jaja, bezier, das kenn ich auch, nur wie soll ich das programmieren? Ausserdem berührt bezier den 2ten Punkt ja nicht, oder? Er kurvt vom P1 zum P3 aber berührt den P2 nicht.
__________________ Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft. Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal Interese für: Sicherheit, Kryptologie, Performance |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
| http://www.seibsprogrammladen.de/fra...ispiele/flash6 -> Zeichnen BSpline 3.+5.Ordnung, Bézier 6.Grades, Kubischer Spline, Lagrange-Polynom, Newton- und Hermite- Interpolation, NURBS da sollte was mit dabei sein.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #5 (permalink) |
| immer gerne hier Registriert seit: Sep 2005
Beiträge: 347
|
Leider bin ich im Geschäft, aber nachher schau ich rein. Warum hab ich nicht zuerst auf seibsprogrammladen nachgeschaut? ![]() Ich hoffe, ich kapier das Zeug. In der Schule hatten wir ja nicht mal den Sinus wie soll ich sowas kapieren? ![]() Ich meld mich wieder wenns Probleme gibt :P Danke! Gruss Kenji
__________________ Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft. Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal Interese für: Sicherheit, Kryptologie, Performance |
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
ich hab auch nur ein mittelmässiges volksschulzeugnis und das ist ewig her. bei flash kann man halt sehen was läuft ;-) und dann probiert man das so lange bis das passt.
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #7 (permalink) |
| immer gerne hier Registriert seit: Sep 2005
Beiträge: 347
|
Naja ich besuche immer noch die Schule (nur 1h Mathe pro Woche >:/), einfach nur 2 Tage pro woche und 3 bin ich im Geschäft. Und ich bin 16. Und in so einem Fall ist auch probieren völlig zwecklos das ich keinen Plan habe was ich tun sollte. Aber ich werd dann dort reinschauen, vllt. kapier ichs. EDIT: Beim normalen bezier, den ich gerade verwenden wollte hast du curve to verwendet. Und das nützt mir gar nichts, da ich ja keine linien zeichnen will sondern objekte darauf wandern. Hilfe! ![]() Gruss Kenji
__________________ Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft. Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal Interese für: Sicherheit, Kryptologie, Performance Geändert von Kenji (07-05-2008 um 22:29 Uhr) |
| | |
| | #8 (permalink) |
| immer gerne hier Registriert seit: Sep 2005
Beiträge: 347
|
Hallo Ich hab mir wieder mal das wiki angeschaut, welches wieder mal ziemlich kompliziert aussieht. (http://en.wikipedia.org/wiki/Bezier_curve) Ich hab jetzt einfach mal die animierten zeichnungen studiert und folgendes erstellt (das genau gleich ist wie auf dem Bild): Unbenannt-1.zip Ich glaube, damit hab ich einen grossen Schritt voran getan, aber ich stehe an, und zwar dort, wo es mehr als 3 Punkte hat (dort werden auch die Zeichnungen entsprechend kompliziert ;-P) Gibts irgendeinen Code der das schnell und einfach macht? HGSeibs version ist leider mit CurveTo() realisiert, das kann ich aber nicht brauchen, da ich keine Linie zeichnen muss, sondern nur Objekte darauf wandern lasse. Danke im Voraus für die Hilfe Gruss Kenji
__________________ Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft. Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal Interese für: Sicherheit, Kryptologie, Performance |
| | |
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
generell würde ich dir empfehlen, dich mal mit bézies zu beschäftigen. das ist eine extrem wichtige kurve, die überall anwendung findet. in kurven_vergleich.fla findest du alle möglichen kurven und da ist garnichts mit curveTo gemacht. bézies gehen niemals durch ihre stützpunkte, nur durch den anfangs und endpunkt. du könntest deinen kurvenzug aus drei einzelnen bézies zusammen setzen. die jeweiligen stützpunkte lägen dann auf tangen durch p2 und p3 (tangente in p2: winkel p1p2p3 halbierende um 90 grad gedreht). das problem bei bézies ist, das man die nicht in gleichlange stücke (== kontinuierliche bewegung) aufteilen kann. ich kenne zwar ein verfahren, aber das funktioniert nicht 100% korrekt. durch die stützpunkte gehen z.b. die hermite- und die newton- interpolation. die verbinden aber nur punkte entlang der x-achse und nicht willkürliche punkt- anordnungen. das lagrange- polynom käme deinen anforderungen nahe. allerdings ist die kurve kaum zu bändigen und schwinkt sehr stark aus. angesichts deiner mathe möglichkeiten (andere haben mit 16 schon nobel-preis arbeiten abgeliefert. bzw. heutzutage ist man mit 16 doch schon erwachsen. das alter ist also keine entschuldigung ;-) würde ich dir vorschlagen das mit kreisen zu machen? siehe bild mit kontruktionshilfe (die roten linien).
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (10-05-2008 um 21:09 Uhr) |
| | |
| | #10 (permalink) | ||
| immer gerne hier Registriert seit: Sep 2005
Beiträge: 347
|
Hahaha ja das mit den Kreisen war meine erste idee. Das ganze ist doof, weil man einfach nicht genügend Freiheit hat, man kann nur kreisrund fahren und keine Ellipsen abfahren. Und ich wollte interpolieren zwischen den Punkten und nicht um meine Punkte herumfahren. Das mit dem Punkt berühren ist mir egal, ich kann mich danach richten. Ich hab deine Kurven ausprobiert, alle die durch den Punkt gehen schwenken zu stark oder zu schwach aus, die Bezier-Kurve ist immer schön gleichmässig und abgerundet. Zitat:
Zitat:
Ausserdem kann ich nichts dafür, dass wir eine Stunde Mathe pro Woche haben, und die reicht gerade zum Hausaufgaben korrigieren! Schei** Schule, versuch mal die Bezierkurve anhand des Wiki Artikels zu verstehen wenn du gerade einmal den Pythagoras kennst! Hast du eigentlich mein Flash angeschaut? Das sieht der Zeichnung im Wiki doch schon ziemlich ähnlich ;-) Naja dann hock ich eben noch ein wenig vor dem PC und probiere selbst, eine anständige Einführung in die Bezier-Kurve gibst wohl nicht. (Also das Wiki listet ja nur Formeln auf und ich kann es nicht leiden wenn ich was rechne und weiss nicht warum!) Gruss Kenji
__________________ Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft. Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal Interese für: Sicherheit, Kryptologie, Performance | ||
| | |
| | #11 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
16: und wenn du noch so sehr jammerst, mit 16 gibt's keinen kinderbonus mehr Oh DOCH: meine güte, dann guck halt in bezier1.fla rein im anhang mal ein beispiel, aber wie schon geschrieben: da hast du null möglichkeiten, die zeichen/beweg- geschwindigkeit zu steuern. es hat schon seinen grund, wenn ich dir kreise vorschlage ...
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |