SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Entwicklung und Softwaredesign

PHP Entwicklung und Softwaredesign Hier können strukturelle (Programmier-) Konzepte diskutiert und Projekte vorgestellt werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 02.11.2009, 15:12:32
Prokonskull Prokonskull ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 31
Beiträge: 21
Prokonskull befindet sich auf einem aufstrebenden Ast
Variable Diagrammgröße

Hallo,

Seit mehreren Tagen arbeite ich nun an der Darstellung eines GPS-höhenprofiles über die GDlib
(Höhenprfil ist ein Diagramm in dem Höhenangaben über eine Wegstrecke angezeigt werden)


Die Werte die ich in der datenbank habe sehen so aus (werden von einem anderen, schon funktionierenden, Script dort reingeschrieben):

ID höhe Km Zeit
1 500m 2.3 14:23
2 433m 2.6 14:24
3 428m 4.1 15:23

Ich weis also zu welcher Zeit sich das GPS-gerät in welcher Höhe befand und wie weit es vom letzten gespeicherten Wert entfernt ist.

Das Zeichnen des Höhenprofils funktionert soweit.

Mein problem hat jetzt eigentlich nichts mit PHP zutun sondern eher mit einem Verständnissproblem das mir keine ruhe lässt.

Mein Diagramm hat momentan keine fixe Breite und Höhe sondern ist so hoch wie der höchste Punkt in den Daten (zum beispiel 500m = 50px hohes Diagramm) und so Breit wie aufgezeichnete Punkte vorhanden sind (200 Punkte in der Datenbank = 200pixel breites Diagramm).

Nun soll das Diagramm aber immer 500x200pixel groß sein. unabhängig davon wieviel punkte ich hab und wie "hoch" sich das GPS befand. Der Diagramminhalt soll also automatisch Skalieren so das er in das Bild von 500x200Pixel passt. Danach sollen Höhenlinien eingezeichnet werden (z.b.: alle 200h Höhenmeter eine Horizontale Linie durchs Bild) ebenso Entfernungslinien (horizontale Linien z.b alle 5km).

Die Schwierigkeit daran ist jetzt das das GPS Gerät in UNREGELMÄSSIGEN Zeit abständen Daten Aufzeichnet und es sich auch mit unterschiedlicher Geschwindigkeit fortbewegt.
Was bedeutet das auf meinem jetzigen Diagramm der abstand zwischen dem ersten und zehnten Kilometer 20pixel betragen könnte aber der Abstand zwischen dem zehnten und zwanzigsten Kilometer 80pixel - je nachdem wieviel Punkte das GPS Gerät in der zeit aufgezeichnet hat.

Ich hoffe ich hab das jetzt einigermaßen verständlich Ausdrücken können. Hat wie gesagt nicht viel mit PHP zutun sondern damit wie man an so etwas herangeht.
Vielleicht hat hier schon jemand mal versucht mit so "Wilden" werten ein Diagramm zu zeichnen und hat einen Denkanstoß für mich.


Mit freundlichen grüßen
Prokonskull

[mod: verschoben]
Wie du selbst sagst hat dein Problem nichts mit PHP zu tun.
Mit Zitat antworten
  #2  
Alt 02.11.2009, 15:49:52
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 51
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Nun deine festen Werte für Höhe und Breite beziehst du in der Berechnung für dein Diagramm ein.
Die X und Y Achse bislang beziehen sich ja auf deinen Höhsten GPS Wert und deiner Wegstrecke.
Also mußt die eine Funktion schreiben, die diese Werte entsprechend hoch bzw. runter rechnet.

GPS Höhe = Achse X
GPS Länge = Achse Y

Nun musst du prüfen ob Achse X =< oder > der X Achse deines Diagrammes ist und entsprechend deine Werte belassen, runter oder rauf rechnen. Das gleich dann noch mit der Y Achse und alles paßt.

Das mit den Linien würde dann nach dem gleichen Prinzip ablaufen.
Mit Zitat antworten
  #3  
Alt 02.11.2009, 16:04:21
Prokonskull Prokonskull ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 31
Beiträge: 21
Prokonskull befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

ja genausoweit ists mir noch klar.

hab ich auch schon erfolgreich Probiert auf diese weiße. Multipliziere oder Dividiere die Maximale Länge einfach solange bis sie ins Bild passt. Alle Längenwerte werden Anschliesend mit der selben zahl Multi- bzw dividiert.

Bei der Höhe genau das selbe spiel, kommt halt noch hinzu dass das Diagramm nicht bei 0 Höhe anfängt zu zeichnen sondern beim niedrigsten Höhenwert. Ist aber auch soweit kein Problem.

Ich frage mich jedoch wie ich das jetzt hinbekomme das auf dem Fertiggezeichneten Diagramm dann zum beispiel 10pixel immer 5km bedeutet und das nichtmehr variiert.

Mein erster Gedanke war folgender:

Ich hab den zurückgelegten weg zwischen zwei punkten und die dafür benötigte Zeit.
Daraus kann ich die durchschnittsgeschwindigkeit zwischen 2 punkten errechnen.

Nun könnte ich viele Rechtecke hintereinander zeichnen wobei die Höhe des Rechtecks der Höhe aus dem GPS wert entspricht und die Breite in Relation zur Geschwindigkeit steht.

Aber ob das nicht viel zu kompliziert ist und es nicht einen viel einfacheren Weg gibt?
Mit Zitat antworten
  #4  
Alt 02.11.2009, 16:25:41
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 51
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Dein GPS Signal gibt doch die Entfernung zum letzten Signal ab. Soweit mir bekannt ist dies die direkte Entfernung zwischen den Punkten und nicht die kürzeste Wegstrecke. Ich kann mich da allerdings irren.

Dein GPS Signal beinhaltet ja Längen/Breitengrade und die Höhe. Die Längen und Breitenangaben ergeben die Entfernung zwischen den Punkten. Mit a²+b²=c² kannst du dann mit Hilfe der Höhenangabe auch eine direkte Wegstrecke errechnen. Die brauchst du aber garnicht, da du ja ein Diagramm zeichnen willst.
Die Y-Achse würde sich somit auf die Gesamtlänge zwischen dem 1. und letzten Signal berechnen. c² würde benutzt werden, wenn du einzelne Punkte verbinden willst um die Diagrammlinie zeichnen zu können.
Mit Zitat antworten
  #5  
Alt 02.11.2009, 16:37:54
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 51
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Eins noch schnell zu deinem Ansatzpunkt. Diese Berechnung würde falsch sein.
Auf der Autobahn bewege ich mich schneller, da ich fast gerade aus fahren.
In den Serpentinen fahre ich viele Kurven. Deine errechnete Fahrtstrecke wäre zwar richtig aber deine Skala auf dem Diagramm wäre falsch.

Die Y Achse zeigt muss ja die 2 dimensionale Entfernung anzeigen. Also die Strecke ohne Höhenunterschied. Da du Kurven nicht in deinem Diagramm einbeziehen kannst ergibt die Verbindung zwischen Punkt 1 und Punkt 2 eine Gerade, die den mathematisch kürzesten Weg ausgibt. Die gefahrenen Kilometer kann man nur als Notiz ausgeben.

EDIT: mit einem Bergsteiger kann man es besser erklären.

Ein Bergsteiger/Freeclimber bewegt sich gerade durch ein Gebirge. An wichtigen Punkten speichert er ein GPS Signal. Zurück gelegte Strecke 4 km.
Er fängt also auf eine Höhe von 400 m an. Geht 1km und setzt ein Signal. Jetzt kommt eine Steilwand. Höhe 30m. Er hat nun zwar 30 m Strecke zurück gelegt, die GPS Punkte sitzen aber an fast der gleichen Stelle. Auf einem Diagramm welches die Wegstrecke auf der Y Achse nutzt hättest du nun eine 30m lange Schräge. In Wirklichkeit muss es aber eine senkrechte Gerade sein, die nur eine Verschiebung um wenige Meter zuläßt, da der Ausgangspunkt am Bergfuß fast der selbe Punkt ist wie der als er den Gipfel erreicht. Wärend die Strecike vom Ausgangspunkt zum Bergfuß eine Schräge ergibt, die weiter auseinander liegt.

Geändert von urvater (02.11.2009 um 17:00:22 Uhr)
Mit Zitat antworten
  #6  
Alt 03.11.2009, 13:21:45
Prokonskull Prokonskull ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 31
Beiträge: 21
Prokonskull befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Mit dem Pythagoras (wie auch immer man das schreibt) rechne ich hier nicht. Sondern mit der formel für den Großkreisbogen da wir ja auf einer "kugel" leben.

Pythagoras würde zwar auch funktionieren wäre aber auf größere Distanzen ziemlich ungenau.

Dein Bergsteiger Beispiel ist zwar ganz nett und super verständlich, aber moderne Navi's haben eine "Track"-funktion die in kurzen Abständen automatisch Daten aufzeichnet. Wir befinden uns hier im Sekundenbereich. Leider aber nicht regelmässig.

Auf jedenfall ist die von dir angesprochene Ungenauigkeit verschindent gering.
Und selbst wenn ich so eine Ungenauigkeit hätte wäre das jetzt nicht zu tragisch.
Mir ist wichtig das Abstände im Diagramm gleich dargestellt werden. So das zum Beispiel die Hälfte der Strecke genau in der Mitte ist und nicht irgendwo früher weil halt zufällig in der 2ten hälfte viel mehr Punkte aufgezeichnet wurden.

Also wäre es Vermutlich am einfachsten wenn die x Achse nur nach der zeit geht. (Uhrzeit der einzelnen punkte hab ich ja)
Mit Zitat antworten
  #7  
Alt 03.11.2009, 15:55:33
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 51
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Wenn das Zeitintervall vom Navi immer gleich ist, kannst du die Zeit nutzen. Wenn du das mit dem Kreisbogen hinbekommst, ich kanns nicht, wäre es optisch vermutlich aber das bessere Ergebnis. Eine AB würde hier als längere Strecke angezeigt werden als eine Fahrt durch die Serpentinen bei gleicher Zeitspanne.
Nimmt der Bergsteiger ein Navi fürs Traking würden in der Steilwand ja auch mehrere Signale gesetzt werden.

An deinem Denkansatz sehe ich jedoch, daß es vermutlich auch eine Geschmackssache ist, wie man letztendlich das Diagramm ausgeben will.
Zitat:
Aber ob das nicht viel zu kompliziert ist und es nicht einen viel einfacheren Weg gibt?
Somit komm ich zum Schluß zu der Erkenntnis: NEIN

Auch mein Ansatz wäre nicht wirklich unkomplizierter.
Mit Zitat antworten
  #8  
Alt 03.11.2009, 16:01:26
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 51
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Da ich dazu zu faul bin keine Screenshots. Nimmt doch einfach mal 20-100 Daten und nutze eine Tabellenkalkulation um dir ein solches Diagramm anzeigen zu lassen. Spiele ein bischen mit der Y Achse rum. (Y war in meinem Matheunterricht immer die horizontale Linie und X die Senkrechte(somit Höhe))
Mit Zitat antworten
  #9  
Alt 03.11.2009, 19:12:09
Prokonskull Prokonskull ist offline
Anfänger
 
Registriert seit: Oct 2009
Alter: 31
Beiträge: 21
Prokonskull befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

keine sorge das mit dem großkreisbogen is halb so wild. die formal hat mich auch erstmal erschreckt

Danke für deine unterstützung urvate,r ich werd jetzt einfach mal weiterprobieren. das Grundprinzip funktioniert ja zum Glück schon.
Hab am anfang schon gedacht ich steck meine Ziele etwas zu hoch für mein erstes programm. Aber ich denk so lernt man am besten
Mit Zitat antworten
  #10  
Alt 05.11.2009, 21:08:57
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 51
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Variable Diagrammgröße

Zitat:
Zitat von Prokonskull Beitrag anzeigen
Hab am anfang schon gedacht ich steck meine Ziele etwas zu hoch für mein erstes programm. Aber ich denk so lernt man am besten
Find das eigentlich ein schönes Projekt. Ich vermute allerdings, daß dies so eine "nerver ending Storie" wird. Kaum funktioniert es stellt man fest wie man es noch besser machen kann. :)
Wünsch die weiterhin viel Spaß und Erfolg dabei.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Variable selbst per GET übergeben juergen PHP Grundlagen 28 29.09.2009 22:59:05
Wert einer Variable ändern und die Änderung auf die Variable ablegen. Ichthys PHP Grundlagen 8 04.05.2006 00:18:55
Text & Variable aus Datenbank auslesen und ausgeben Don Stefano PHP Grundlagen 6 28.09.2005 23:47:18
Variable in Variable? Giz PHP für Fortgeschrittene und Experten 13 22.07.2005 11:12:00
URL mit Präfix und Variable im Speicher ??? ben PHP für Fortgeschrittene und Experten 1 15.06.2002 21:45:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:23:09 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.


© 2001-2019 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt