Balkenlänge berechnen |
07.10.2022, 17:20 | mms | Auf diesen Beitrag antworten » |
Balkenlänge berechnen 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 |
||
08.10.2022, 08:21 | 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. |
||
08.10.2022, 11:31 | 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. Mir steht auch nur PHP zur Verfügung. mfg Michael |
||
08.10.2022, 11:57 | 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. |
||
08.10.2022, 12:11 | mms | Auf diesen Beitrag antworten » |
Hallo Danke 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 |
||
08.10.2022, 12:32 | 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. |
||
Anzeige | ||
|
||
08.10.2022, 12:46 | 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 |
||
08.10.2022, 12:55 | 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. |
||
08.10.2022, 13:05 | mms | Auf diesen Beitrag antworten » |
Hallo Ok, gut zu wissen, falls ich es mal benötige. log10 ist tatsächlich zu viel. mfg Michael |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|