tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
751
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von iMarcG5
    iMarcG5 iMarcG5 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    24
    Guten Tag erst mal an euch alle.
    Wie gesagt geht es bei mir im Moment um eine PictureBox.
    Grundsätzlich geht es darum die Daten(Längen + Breitengrad) die ich über GPS-empfange in einem XY-Plot darzustellen. Dass man z.B. die mit dem Auto gefahrene Strecke visualisieren kann.

    die Daten bekomme ich schon, hab sie aus dem GPS-Stream ausgefiltert. Es geht also nur noch um die visualisierung.

    Linien zeichnen in pictureBoxen ist auch nicht mein Problem (hier in diesem Fall ja zwischen zwei Punkten (zwischen empfangenenKoordinaten_n und empfangenenKoordinaten_n-1)(n = Zeitpunkt)) (!das ist jetzt kein Code!)
    nun kommts aber...

    1. müsste ich mir ja bei GDI (wenn ich z.B. ne stunde fahre) (120*60)-2 Punkte merken, da ich ja immer jeden alten Punkt wieder neu zeichnen muss (oder geht es doch anders) (ist antürlich auch ne Zeitsache... wenn ich ne for-Schleife brauche die x-tausendmal durchläuft *graus* )

    2. müsste ich auch den Maßstab dynamisch anpassen können.
    d.h. immer der am weitesten vom Startpunkt entfernte Punkt ist ganz außen in der PictureBox. Zudem müssen natürlich die anderen Punkte (entfernungen) angepasst werden.

    kleines beispiel.

    ich fahre 10 Meter nach rechts... somit bin ich ganz rechts angekommen (an der PictureBox) fahre ich nun weiter nach rechts, so wird die rechte WerteGrenze der PictureBox verschoben. die vorhergerfahrenen 10 meter die zu beginn 100Pixel waren sind nun natürlich bei 100 gefahrenen metern nur noch 10 Pixel...

    ... wenn ich genau so gut wüsste wie ich es programmieren kann, wie beschreiben, dann hätte ich es wohl schon fertig..

    Meine Frage:
    Geht das überhaupt mit GDI... kennt sich sonst jemand besser in DirectX aus (auf jeden Fall würd ich sagen ) und könnte sich denken wie es dann funktionieren kann...

    habe schon bei Csharpcorner paar XY-Plots gesehen.... helfen mir allerdings auch nicht arg weiter!.. v.a. das Punkte-Speicher-Problem

    Ich hoffe es hat jemand eine gute Idee...wäre sehr nett...
    vielen Dank schonmal im voraus
    Geändert von iMarcG5 (16.06.05 um 15:06 Uhr)
     

  2. #2
    Avatar von iMarcG5
    iMarcG5 iMarcG5 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    24
    kann denn niemand etwas dazu sagen?
    oder hab ich mich undeutlich ausgedrückt?
    wäre nett wenn jemand etwas sagen könnte
    Danke.
     

  3. #3
    LieberNet LieberNet ist offline Mitglied Bronze
    Registriert seit
    Feb 2004
    Ort
    Wels
    Beiträge
    38
    Hi!
    Also ich würde mir hier eher eine eigene Klasse schreiben, die weniger Punkte sondern eher in Richtung Vektor geht. Also so eine Art Winkel in ° und Weg in z.B. einer fixen Einheit m. Deine Darstellung (Bitmap) holt sich dann beim Zeichnen diese Vektoren und skaliert diese eigenständig auf die aktuelle ZoomSize. Hat den Vorteil, das rein/raus zoomen automatisch mitkommt. Und als 2tes den Vorteil das z.B. 10 Punkte in die gleiche Richtung nicht 10 Punkte sind sondern nur 1 Vektor mit der entsprechenden Länge.

    Wäre z.B. mein Ansatz den ich wählen würde. Ich würde die Daten also auf einen definierten Stand/Einheit lassen. XY finde ich insofern nicht gut, da sich XY wie bei Dir der Fall jederzeit ändern könnten. D.h. ständig Koordinaten auf die Zoomsize umrechnen. Damit würdest Du ja immer die Punkte verändern müssen.

    Vielleicht hilft Dir das etwas weiter
    Ciao
    LieberNet
    Geändert von LieberNet (17.06.05 um 09:28 Uhr)
     

  4. #4
    Avatar von iMarcG5
    iMarcG5 iMarcG5 ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    24
    Danke.. der Ansatz ist ja ganz nett...
    aber ich verwende ja bereits 2D Vektorgrafiken von GDI+ indem ich die zwei Punkte angebe, die verbunden werden sollen

    viele Punkte allerdings durch Kurven zu ersetzen habe ich noch nicht bedacht... hört sich aber nach ziemlichen rechenaufwand an...
    am einfachsten wäre natürlich wenn einfach die alte zeichnung dran beleibt, und nur was neu dazu kommt gezeichenet werden muss... aber ob das geht, bzw. wie und vielleicht mit directX oder auch nicht ist im Moment für mich noch ein rätsel...

    falls sich also jemand gut auskennt und weiß wies geht... wäre nicht schlecht..

    PS: Bild zoomen geht ja schon:.. aber eben was alts Zoomen und dann was neues (im neuen Maßstab) dazu zeichnen ... das wäre nicht schlecht!
     

Ähnliche Themen

  1. Images aus einer ListBox in einer PictureBox anzeigen
    Von Zhoragh im Forum .NET Windows Forms
    Antworten: 1
    Letzter Beitrag: 27.04.07, 13:01
  2. Antworten: 2
    Letzter Beitrag: 17.02.07, 18:04
  3. Dynamische PictureBox und Label - Wert auslesen
    Von Plumpsi im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 10.02.05, 14:30
  4. scrollen in einer pictureBox
    Von astrashaker im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 20.05.04, 12:52
  5. Antworten: 6
    Letzter Beitrag: 05.02.04, 08:44