Moin!
function get_scale_range($minrange)
{
$minrange = abs($minrange); // Wenn sich die Differenz mal verrechnet und negativ ist - besser das Vorzeichen weghauen
$raster = 25; // Rasterwert: 25xx, 50xx, 75xx, 100xx
$potenz = 0; // Start bei 10^0 = 1
$step = 1; // Hilfsvariable, die die Schritte in einem Wertebereich mitzählt.
$range = 25; // Startwert
while ($range < $minrange)
{
$step++;
if ($step % 4 == 0) // Alle vier Erhöhungsschritte
{
$potenz++; // die Zehnerpotenz erhöhen
}
$range = $range + $raster * 10 ^ $potenz
}
return $range;
}
Es hat zwar den ein oder anderen moment gedauert bis ich es dann verstanden hatte, aber danach war ich um so begeisterter, nicht schlecht - wobei es IMHO ^ in PHP nicht gibt, aber da gibt es ne Funktion(pow() oder so ähnlich?)
Tja, das sind (du erinnerst dich vielleicht an mein Posting </archiv/2003/1/34091/#m185660>) alles noch "Reste" von meiner Programmierweise. Da ich die Funktion nicht getestet habe, habe ich logischerweise auch nicht recherchiert, welche Funktionen es wirklich gibt. Du weißt, was gemeint ist - "showing the usefulness of this function is left as an exercise to the reader". ;)
Du suchst jetzt eine "runde" Zahl kleiner als dein Minimum, welche als Startpunkt deiner Skala dienen kann.
Meinst Du mit rund eine die in das 25er Raster passt?
Naja, 25er, oder 250er, oder so ähnlich - je nach Wertebereich. :)
Auch hier kann "Modulo"-Rechnen ziemlich gut helfen, weil es den unnötigen, krummen "Rest" deines Minimums wegnimmt.
int($min / ($range/10)) * ($range/10) = Startwert der Skala
int() gibt es nicht in php, nur intval(), abs(), round() und (int). Wobei ich bei allen diesen Dingen Angst habe, denn (INT) 10*(0.1 + 0.7) //=7!
Du brauchst aber keine Angst zu haben - solltest du jedenfalls erstmal nicht. Denn um was geht es bei dieser Formel? Sie soll Ganzzahlen produzieren! Also ist ein Computer genau das Richtige zum Rechnen. :)
Multipliziere ich das Ganze wieder mit dem Intervall eines Teilstrichs, bin ich wieder im Bereich meiner ursprünglichen Skala, und kenne den Wert des Teilstrichs, der sich direkt unter dem Minimum befindet. :)
Ein netter Trick! Ganz ehrlich - auf solche Sachen wäre ich selbst nie gekommen, auch die Funktion, guck Dir dagegen mal mein "Gemurkse" mit Sting-Funkitonen an.... tse, tse, tse
"Sting"-Funkitonen - netter Verschreiber. :) Oder war das dein String-Gemurkse?
Vielen Dank für die Hilfe, ich denke hiermit ist alles klar, jetzt muß ich es nur noch schaffen jpeg-Support in PHP mit einzukompilieren(s.o. im Forum), naja.
Ich würde Grafiken immer mit PNG ausgeben (hilfsweise mit GIF, aber das ist normalerweise ja nicht verfügbar). Das, was du planst, erfordert feine Linien und nicht wahnsinnig viele Farben - also ist JPEG genau falsch. Es sei denn, du brauchst das für andere Dinge.
- Sven Rautenberg
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)