Ankündigung

Einklappen
Keine Ankündigung bisher.

Fahrzeugpositionierung auf Streckengrafik (2D)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Fahrzeugpositionierung auf Streckengrafik (2D)

    Hallo Zusammen,

    mein Name ist Frank, bin 43 Jahre alt und arbeite derzeit an einem Projekt zur Realisierung eines Live-Timings im SimRacing-Bereich speziell für Langstreckenevents: http://vxracing.de/vmliveview/

    Die Daten werden von einem PHP-Skript aus einer XML-Datei heraus gelesen und in eine SQL-DB zwischengespeichert, welche dann über weitere PHP-Skripte, je nach Anforderung, präsentiert werden können.

    Zwischen "Session Info" und "Overall Standings" befindet sich eine Fortschrittsanzeige, welche die aktuelle Position eines jeden Fahrzeugs in Abhängigkeit zur Streckenlänge darstellt. Soweit so gut. Nun würde ich aber gerne genau diese Fahrzeugposition auf einer Streckengrafik dynamisch wieder geben: http://vxracing.de/vmliveview/track.php

    Aus Erfahrung weiß ich das wenn man die Richtigen Fragen stellt, man in der Regel auch die Richtigen Antworten bekommt. Nur leider kenne ich die Richtigen Fragen gegenüber Google nicht, denn ich habe überhaupt keine Ahnung wie man so etwas programmatisch angeht.

    Als Beispiel:
    - Was für Daten benötigt man für das "Koordinaten-System" der X-Achse und Y-Achse?
    - Brauche ich zusätzlich noch Werte für eine eventuell benötigte Z-Achse?
    - Ich habe die jeweilige Streckenlänge, welche von der Simulation ausgegeben wird. Wie berechnet man die Streckenlänge in Abhängigkeit zu der jeweiligen Grafik-Datei?
    - Oder: Wäre man besser daran, das ganze komplett selbst zu "Zeichnen", sofern die benötigten Daten abgegriffen werden können?

    Vielen Dank schon mal im Voraus für eure Hilfe!

    Gruß
    Frank

    PS: Sorry wenn ich es im falschen Forum gepostet habe!
    Wenn man weiß wie es geht, ist es auf einmal sau einfach ...

  • #2
    Was du in erster Linie brauchst, ist die Umsetzung der Information gefahrene Streckenlänge in X/Y-Koordinate auf der Karte.

    Wenn du das dynamisch berechnen willst, müsstest du erst mal die Strecke irgendwie in Form von Vektoren o.ä. abbilden – und dann so lange Vektoren aufaddieren, bis die Summe der Vektorenlängen (der einzelnen, nicht des resultierenden Summenvektors) die gefahrene Strecke erreicht hat, und dann schauen, welche X/Y-Koordinate dabei herausgekommen ist.

    Etwas weniger Aufwand wäre es, wenn man die Zuordnung gefahrene Strecke <-> X/Y-Koordinate einmal „von Hand“ vornimmt, und dann so ablegt, dass man jeweils mit einer Strecke die Koordinaten einfach aus einem Array/Datenbank/etc. auslesen kann.
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Wie wird denn die aktuell Zeitachse gerechnet? Welche Eingabedaten liegen dir denn vor? Die Streckenlänge allein nützt dir ja nichts, da die Geschwindigkeit ja nicht konstant ist. Meinst du eigentlich die Rundenlänge, oder die Länge, die ein Fahrzeug in dieser Runde Stand jetzt bereits zurückgelegt hat?

      Ggf. ließe sich da was mit Pfad-Animationen machen. Bei dem Thema bin ich dann allerdings raus

      Kommentar


      • #4
        Also ... folgende "relevante !?!?" Daten werden derzeit von einem Plugin der Simulation in eine XML-Datei geschrieben:

        - Streckenlänge in Meter
        - Derzeitige zurückgelegte Strecke des Fahrzeugs auf der Strecke in Meter

        Folgendes könnte ich noch hinzufügen:

        - PathLat (Path Lateral) Abweichung des Fahrzeugs von der Streckenmitte längs der Strecke !?
        - TrackEdge (Relevant Track Edge) ???
        - Pos.x, Pos.y, Pos.z (XYZ-Positions des Fahrzeugs) !
        - Vel.x, Vel.y, Vel.z (XYZ-Geschwindigkeit des Fahrzeugs) !
        - Accel.x, Accel.y, Accel.z (XYZ-Beschleunigung des Fahrzeugs) !

        Eine im Quelltext des Plugins bezeichnete "linkshändige Orientierungsmatrix" des Fahrzeugs mit folgenden Werten:
        - OriX.x, OriX.y, OriX.z
        - OriY.x, OriY.y, OriY.z
        - OriZ.x, OriZ.y, OriZ.z
        - LocalRot.x, LocalRot.y, LocalRot.z
        - LocalRotAccel.x, LocalRotAccel.y, LocalRotAccel.z

        Wenn ich nun ChrisB's Hinweise auf Vektorrechnung richtig deute, bräuchte ich ja eigentlich "nur" die XYZ-Positionen des Fahrzeugs auf eine in Vektoren unterteilte Streckengrafik berechnen/übertragen ^^ !?!?

        Danke & Gruß
        Frank
        Wenn man weiß wie es geht, ist es auf einmal sau einfach ...

        Kommentar


        • #5
          Orientation & Rotation Daten nutzen und ins Darstellungsverhältniss / Einheit der Karte bringen. Du kannst dann einfach die "aktionen" der Fahrzeuge live auf der Fläche Darstellen, da Dinge wie kollisionserkennung und "hat straße verlassen und liegt tot im graben" dich wohl weniger interessieren. Sprich, dich brauch nicht jucken worauf und wie bebaut / gebaut der murks ist worauf du arbeitest, du solltest nur behandeln wohin? und wie schnell?
          [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

          Kommentar

          Lädt...
          X