Terrain - 2D - simpel - suche Sortieransatz



  • Hallo,

    stelle man sich vor, man hätte eine 2D-Landschaft (sidescroller) die aus Punkten bestünde, die mit Linien verbunden wären:

    Alle Punkte zu zeichnen ist unnütz, aber wie kann ich sortierte Punkte so ausgeben, das Vorsprünge funktionieren:

    http://img3.imagebanana.com/img/gd8b8i0/vorsprung.bmp.png

    Wie sollte man sowas einfach aber rechnerfreundlich lösen?

    Gruß der ex-unregistrierte...



  • wenn du es nur seitwärts scrollen möchtest, dann würde ich einfach alle Punkte nach ihrer x koordinate sortieren, so kannst du ganz leich nach dem divide and coqer verfahren herausbekommen, ob ein Punkt im Bild liegt oder nicht. wenn der Punkte auch nicht informationen enthalten, mit welchen anderen Punkten sie verbunden sind, dann kannst so auch herausfinden, welche Punkte mit einem auf dem Bildschirm befindlichen Punkt verbunden sind.

    Wenn du jetzt auch noch hoch und runterscrollen möchtest, musst du die selben Punkte in einer anderen Liste nach ihrer y-Koordinate sortieren, und verfährst nach dem gleichen Prinziep.

    zusammengefasst:
    alle Vertexe nach x koordinate Sortieren (einmal)
    größter (x-Koordinate) im Bild liegender Vertex suchen
    kleinster im Bild liegender Vertex suchen
    Alle Vertices zeichenen, die in der Liste zwischen den beiden liegen (Auch die damit verbundenen Vertices).



  • Das hätte aber ein Problem, wenn die beiden nächsten Punkte außerhalb des Bildes liegen, also nur die Linie zu sehen sein sollte...

    P----|screen|----P


Anmelden zum Antworten