Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Formel für eine Breite (https://www.delphipraxis.net/197206-formel-fuer-eine-breite.html)

MicMic 21. Jul 2018 21:45

Formel für eine Breite
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich kann nicht mehr vor lauter grübeln :)

Vielleicht ist es für jemand einfach
Code:
var tw,fw,breite,i : integer;

fw := 0;
For i := 0 To n Do // n kann immer anders sein
begin
 tw := ...Canvas.TextWidth(daten[i]);
 if tw > fw then fw := tw;
end;
breite := fw;
So gehe ich eine Datenliste durch und ermittle die größte Textbreite. Diese steht dann in der Variable "breite". Sagen wir mal, ich will damit erreichen das jede Zeile (Datenliste) komplett angezeigt wird. Dies geht, da ich ja die breiteste Breite habe.

Nun will ich aber erreichen, dass ich sicherstellen möchte, dass z.B. 70% komplett angezeigt werden können und die anderen werden dann später abgeschnitten. Also ich kann ja nicht (mit obigen Code) so eine normale Prozentberechnung machen, sprich 70% = breite / 100 * 70.

Anderes Beispiel dazu (siehe Grafik).
Die Linien sind mal schlanke Menschen (*grins) und 70% (oder auch 55%, 20%, 90%) sollen ohne sich bücken zu müssen durch ein Tunnel laufen können. Alle anderen werden abgesägt, bevor sie den Tunnel betreten. :) Nun sind 70% ja immer anders. Je nach Inhalt der Daten, sprich um die Grafik zu nehmen... sollten es noch 1000 weitere kleine Linien (die letzten in der Grafik) geben, dann würden bei 70% mehrere große Linien wegfallen. Also wie hoch baut man den Tunnel, damit 70% locker durchpassen?

Ist echt schwer zu erklären.

Michael

Schokohase 21. Jul 2018 22:08

AW: Formel für eine Breite
 
Sortiere die Zeilen nach den Längen und nimm dann die Länge an der "70%"-Zeile (also bei 100 Zeilen, wäre es der Längenwert der Zeile 70).

p80286 21. Jul 2018 22:25

AW: Formel für eine Breite
 
Was willst Du erreichen?
70% aller Datensätze oder 70% der max. Satzlänge. Das wäre ja ein kleiner Unterschied.

Gruß
K-H

himitsu 21. Jul 2018 22:28

AW: Formel für eine Breite
 
Zitat:

Zitat von Schokohase (Beitrag 1408259)
Sortiere die Zeilen nach den Längen und nimm dann die Länge an der "70%"-Zeile (also bei 100 Zeilen, wäre es der Längenwert der Zeile 70).

passt nicht, auf die Gesamtlänge.

durchschnittlich 8x 30 lang und 2x 1000 lang
oder
durchschnittlich 7x 30 lang und 3x 1000 lang

Was ist dann bei 70?
30 und 1000


Ich denke mal es geht eher in Richtung empirischer Mittelwert, anstatt dem arithmetischen Mittelwert ... so wie bei der Standardabweichung
* erstmal sorttieren
* die extremwerte entfernen
* vom Rest 70% nehmen
* damit die gesamtbreite berechnen
* das auf die verfügbare Breite runterskalieren (zoomfaktor)
* und mit dem Faktor die begrenzen Spaltenlängen berechnen

zu kurze Spalten etwas breiter, damit man sie immer sieht (Minimalbreite)
zu lange Spalten mit einer Maximallänge (z.B. je Spalte maximal 80-100% der sichtbaren Breite)
also vorher noch diese Grenzen beachten und vor allen Berechnungen die begrenzen

Schokohase 21. Jul 2018 22:33

AW: Formel für eine Breite
 
Wenn 70% aller Zeilen komplett angezeigt werden sollen ...

Code:
1. 30
2. 30
3. 30
4. 30
5. 30
6. 30
7. 30 <- da sind 70%
8. 30
9. 1000
10. 1000
Code:
1. 30
2. 30
3. 30
4. 30
5. 30
6. 30
7. 30 <- da sind 70%
8. 1000
9. 1000
10. 1000

MicMic 21. Jul 2018 22:35

AW: Formel für eine Breite
 
Schokohase gab mir nun das Leuchten :)
Ich glaube damit geht es.

Die Sortierung muss ich mir jetzt noch überlegen, wie am besten dies geht.

Aber erst mal Nutellabrot essen :)

Danke an alle... auch die beiden nach Schokohase. Evtl. muss ich ja noch weiter drüber grübeln

Michael

TigerLilly 23. Jul 2018 07:03

AW: Formel für eine Breite
 
Schau mal ob du mit den Begriffen Median oder Perzentilen weiter kommst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz