AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Formel für eine Breite

Ein Thema von MicMic · begonnen am 21. Jul 2018 · letzter Beitrag vom 23. Jul 2018
Antwort Antwort
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

Formel für eine Breite

  Alt 21. Jul 2018, 21:45
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
Miniaturansicht angehängter Grafiken
grafik.png  
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#2

AW: Formel für eine Breite

  Alt 21. Jul 2018, 22:08
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).
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Formel für eine Breite

  Alt 21. Jul 2018, 22:25
Was willst Du erreichen?
70% aller Datensätze oder 70% der max. Satzlänge. Das wäre ja ein kleiner Unterschied.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#4

AW: Formel für eine Breite

  Alt 21. Jul 2018, 22:28
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Jul 2018 um 22:32 Uhr)
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#5

AW: Formel für eine Breite

  Alt 21. Jul 2018, 22:33
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
  Mit Zitat antworten Zitat
MicMic

Registriert seit: 26. Mai 2018
296 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Formel für eine Breite

  Alt 21. Jul 2018, 22:35
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

Geändert von MicMic (21. Jul 2018 um 22:36 Uhr) Grund: vertippt
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Formel für eine Breite

  Alt 23. Jul 2018, 07:03
Schau mal ob du mit den Begriffen Median oder Perzentilen weiter kommst.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 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