Pinoccio
2010-04-26, 00:32:30
Problem ist folgendes: Ich zeichne eine zoombare Karte, in die auch das Gradnetz eingeblendet werden soll. Nun muß mein Programm also dynamisch entscheiden, welche Linien es zeichnen soll, denn es sollen ja möglichst glatte Gradzahlen sein. Ich will aus Platz- und Übersichtlichkeitsgründen nun mindestens 2 und maximal 4 Linien haben.
Beispiele(immer nur eine Achse):
Kartenausschnitt - gewünschtes Ergebnis
11.8 bis 13.3 - 12 13
12.45 bis 27.3 - 15 20 25
1.23 bis 1.88 - 1.25 1.50 1.75
1.3 bis 49.7 - 15 30 45
1.632 bis 2.01 - 1.7 1.8 1.9 2.0
17.02 bis 20.8 - 18 19 20
Wie stelle ich das am cleversten an?
Meine Versuche, die ästhetischen Entscheidung zu formalisieren, sind leider bislang wenig erfolgreich.
Das Problem tritt ja auch bei Achsenbeschriftungen von Plots auf, also hab ich mal MATLAB befragt. Dort werden Schritte von 1, 2 oder 5 genutz - entsprechend skaliert. Verkleinert man die Figure, so staucht MATLAB und reduziert die Anzahl der Ticks, aber es bleiben im Extremfall 6 Ticks.
Beispiele:
http://www.abload.de/img/gridnssm.gif (http://www.abload.de/image.php?img=gridnssm.gif)
Ist also auch nicht exakt das, was ich bräuchte.
(Ich hätte gerne für die letzten beiden 27 30 33 36 (oder 30 35) und 32 36 40 44 (oder 35 40))
mfg
Beispiele(immer nur eine Achse):
Kartenausschnitt - gewünschtes Ergebnis
11.8 bis 13.3 - 12 13
12.45 bis 27.3 - 15 20 25
1.23 bis 1.88 - 1.25 1.50 1.75
1.3 bis 49.7 - 15 30 45
1.632 bis 2.01 - 1.7 1.8 1.9 2.0
17.02 bis 20.8 - 18 19 20
Wie stelle ich das am cleversten an?
Meine Versuche, die ästhetischen Entscheidung zu formalisieren, sind leider bislang wenig erfolgreich.
Das Problem tritt ja auch bei Achsenbeschriftungen von Plots auf, also hab ich mal MATLAB befragt. Dort werden Schritte von 1, 2 oder 5 genutz - entsprechend skaliert. Verkleinert man die Figure, so staucht MATLAB und reduziert die Anzahl der Ticks, aber es bleiben im Extremfall 6 Ticks.
Beispiele:
http://www.abload.de/img/gridnssm.gif (http://www.abload.de/image.php?img=gridnssm.gif)
Ist also auch nicht exakt das, was ich bräuchte.
(Ich hätte gerne für die letzten beiden 27 30 33 36 (oder 30 35) und 32 36 40 44 (oder 35 40))
mfg