Balkenlänge berechnen

Neue Frage »

mms Auf diesen Beitrag antworten »
Balkenlänge berechnen
Hallo

Ich habe für meine Homepage einen Seitenzähler, siehe Bild.
Aber, wie man sieht, ist 1 Balken sehr lang, einer in der Mitte und alle anderen sehr kurz.

meine Berechnung:
maximale Länge = 800
Balkenlänge = (800 / maximale Balkenlänge) * neu Balkenlänge

Erklärung
zu 1) Klicks 164
Balkenlänge (800 / 1440) * 164 = 91

zu 14 (max) 1440
Balkenlänge (800 / 1440) * 1440 = 800

Je länger der max Balken desto kürzer die anderen.

Ein Lösungs Ansatz ist, zb. Max ab 500 (800+50) - ab 1000 (800+100) usw

Hier kann es aber passieren, das der Balken zu weit nach rechts herraus geht.

Hat da einer vielleicht eine Idee wie man das umsetzen kann?

mfg
Michael
IfindU Auf diesen Beitrag antworten »
RE: Balkenlänge berechnen
Eine Möglichkeit ist eine streng montone, konkave Funktion zu nehmen, bspw. oder und zu benutzen. Da für größere Inputs ist, werden die Werte näher zusammengepresst.

Das ist eine Art kontinuierliche Version von dem was du vorgeschlagen hast.
mms Auf diesen Beitrag antworten »

Hallo

Danke für die Hilfe.

Mein Schulrechnen ist schon über 40 Jahre her, und Deine Berechnung verstehe ich leider nicht. verwirrt
Mir steht auch nur PHP zur Verfügung.

mfg
Michael
IfindU Auf diesen Beitrag antworten »

https://www.php.net/manual/en/function.log10.php
https://www.php.net/manual/en/function.sqrt.php

Das sind die zwei Funktionen, die ich als Beispiel hatte.

Maximale Länge wäre bei der ersten Funktion dann und dann der erste Balken entsprechend .

Oder mit der Wurzel dann und dannn der erste Klick mit der Länge des Balken dann .

D.h. der erste Balken würde etwa 1/3 des ganzen Bildschirm annehmen. Ich denke mit der Funktion sqrt solllte es vernünftig aussehen.
mms Auf diesen Beitrag antworten »

Hallo

Danke Freude

Ich habe es erst nicht richtig verstanden, da ich auch PHP nicht gelernt habe.
So habe ich das umgesetzt.
$laenge = 800/sqrt($max) * sqrt($inhalt);

mfg
Michael

Es Funktioniert, aber wenn Max > 10000 ist, sind die Balken wieder sehr klein.
Geht das noch anders?
mfg
IfindU Auf diesen Beitrag antworten »

Die Frage wäre, was deine Erwartungshaltung ist. Soll die Längen in irgendeinerweise die Anzahl der Clicks darstellen? Oder willst du einfach nur eine Ordnung haben?

Wenn du immer nur 20 Einträge hast, sortiere die 20 und gib jedem 40px mehr.
 
 
mms Auf diesen Beitrag antworten »

Hallo

Das ist schon ok, besser als vorher.
Und ob die Zahl wirklich so hoch wird, muss ich erst mal sehen.
Na ja, wenn die Max > 10000 ist, sind die Anderen ja sicherlich auch größer und dann passt es ja.

Noch mals vielen Dank.

mfg
Michael
IfindU Auf diesen Beitrag antworten »

Du kannst auch die Wurzelfunktion mehrfach anwenden, d.h. sqrt(sqrt(1440)) oder sqrt(sqrt(sqrt(1440))).

Je öfter du es machst, desto "ähnlicher" werden die Balken. Die Funktion log10 ist ähnlich, aber noch extremer. Damit kannst du es auch probieren.
mms Auf diesen Beitrag antworten »

Hallo

Ok, gut zu wissen, falls ich es mal benötige.
log10 ist tatsächlich zu viel.

mfg
Michael
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »