Entwickler-Ecke

Sonstiges (Delphi) - Geldbeträge als Rechtecke darstellen (Statistik)


padawan - Do 20.01.11 23:12
Titel: Geldbeträge als Rechtecke darstellen (Statistik)
Hallo Delphi-Freunde!

Hab ne Rechenaufgabe(i schaffs net allein :cry: )
Ich möchte 8 Geldbeträge, statistisch mit 8 waagerecht verlaufenden Rechtecken, untereinander darstellen.
Die Beträge sind zB. 20,05 34,86 204,26 111,50 usw. -alles in Euro

in einem TImage(Image1.Width=500) zeichne ich die Rechtecke, klappt ja auch.

Mein Problem ist, für den größten Betrag(hier 204,26) den möglichst größten Wert für das Rechteck zu berechnen:
Mit dem richtigen Code könnte man das <array[1..8] of Real> doch per Schleife in Rechteckbreiten umwandeln.

Das breiteste Rechteck sollte möglichst groß sein, natürlich kleiner Image1.Width.
Die kleineren Beträge sollen ebenfalls zu Rechtecken werden, entspr. angepasst.

Ich konnte für eine Googlesuche keine vernünftigen Suchbegriffe finden.

DANKE im Voraus!!!


elundril - Do 20.01.11 23:22

Naja du sagst einfach die maximale breite is zb: 450 pixel.

Dann sind deine 204,26 Euro = 100% und demnach 450 pixel. Wieviel Prozent sind demnach 111,50 Euro? Einfach 111,50 durch 2,0426 und du hast die angabe wieviel prozent das sein müssen (2,0426 sind 204,26 durch 100). Das ergibt in dem Beispiel rund 54. Wenn du dann 450 * 0,54 rechnest, bekommst du die Breite des Balkens abhängig von der Maximalbreite, in deinem Fall 450. Die 0,54 sind einfach die 54 Prozent durch 100.

lg elundril


padawan - Do 20.01.11 23:34

Hallo elundril!

Na klar, Prozentrechnung ist hier wohl unumgänglich. Denke, ich verstehe die Vorgehensweise jetzt gut.

Ich will es gleich mal umsetzen. DANKE Dir!!!


padawan - Do 20.01.11 23:44

Wie kann ich am besten verfahren, wenn ein oder mehrere Beträge > Image.width sind??


elundril - Do 20.01.11 23:47

Steht auch oben drin. Der höchste Betrag (wurscht ob der jetzt mehr als image.width ist oder weniger) wird so groß wie image.width abzüglich einem konstanten wert. (der konstante wert ist nur dafür da damit das nicht so an die Kante gepickt aussieht)

Du kannst auch das ganze beispiel mal mit dem maximalwert 50 durchrechnen statt den 450 und bekommst noch immer nur Zahlen kleiner oder gleich image.width. (die 50 sind dann dein image.width-konstanter wert)

lg elundril


padawan - Do 20.01.11 23:56

Das kommt so selbstverständlich rüber.. Alle Achtung! Danke!!!


Xion - Fr 21.01.11 07:28

Da ich Unsinn geschrieben habe und aus dem Post doch noch was produktives machen möchte:

Wenn du viel mit Statistiken machst, kannst du dir mal TChart angucken. Ist zwar verbuggt beim einrichten, aber wenns mal läuft ist es ganz gut. Das macht solche Dinge automatisch, und kann auch Kuchendiagramme usw.