Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Prozentrechnung (https://www.delphipraxis.net/164322-prozentrechnung.html)

utd123 8. Nov 2011 09:47

Prozentrechnung
 
Hallo
Ich habe ein problem mit der Prozentrechnung in delphi 7.
Ich will den Prozentualen Anteil der Pixel in bestimmten Farben berechnen.
Die Anzahl der Pixel in den Farben habe ich schon berechnet.

Delphi-Quellcode:
//Memo3.Lines.add(floattostr((grau)/(Image1.Picture.Bitmap.Width +1 * Image1.Picture.Bitmap.Height +1)*100) + '%');
grau ist die anzahl der grauen pixel.

was habe ich falsch gemacht?

MGC 8. Nov 2011 10:10

AW: Prozentrechnung
 
Hallo,

ich würde mal sagen, dass der Gesamtansatz zur Prozentberechnung falsch ist.
Gehe es doch mal anhand eines einfachen Dreisatzes durch:

Du hast eine Fläche von Width = 100 und Height = 100 Pixeln (also 100 * 100 Pixel = 10000 Pixel)
und davon sind 5000 Pixel grau und 2500 gelb:

graue Pixel:
10000 Pexel entspricht 100%
5000 Pixel entspricht X%

X = 5000 * 100 / 10000
X= 50%

gelbe Pixel:
10000 Pixel entspricht 100%
2500 Pixel entspricht X%

X = 2500 * 100 / 10000
X = 25%

Dein Code lautet z.B. für die grauen Pixels demnach wie folgt:

Delphi-Quellcode:
PxProCent := FloatToStr(CountedGreyPixels * 100 / (Image1.Picture.Bitmap.Width * Image1.Picture.Bitmap.Height));


Wenn Du das ganze jetzt noch in eine Funktion packst und farbunabhängig gestaltest, kannst Du zu jeder Farbe gleich Deine Prozent-Angaben mit derselben Funktion ausrechnen lassen.

gammatester 8. Nov 2011 10:17

AW: Prozentrechnung
 
Du hast mindestens zwei Klammern vergessen:
Delphi-Quellcode:
(Image1.Picture.Bitmap.Width +1) * (Image1.Picture.Bitmap.Height +1)
//statt
(Image1.Picture.Bitmap.Width +1 * Image1.Picture.Bitmap.Height +1)

DeddyH 8. Nov 2011 10:19

AW: Prozentrechnung
 
Wieso eigentlich das +1 jeweils? Die Größe sollte doch Höhe * Breite entsprechen, oder gibt es da Toleranzen, die mir bislang unbekannt sind?

utd123 8. Nov 2011 10:29

AW: Prozentrechnung
 
Danke für die schnelle antwort:thumb:,
jetzt funktionierts

bernau 8. Nov 2011 10:35

AW: Prozentrechnung
 
Zitat:

Zitat von DeddyH (Beitrag 1134965)
Wieso eigentlich das +1 jeweils? Die Größe sollte doch Höhe * Breite entsprechen, oder gibt es da Toleranzen, die mir bislang unbekannt sind?

Vieleicht um eine Exception DivByZero zu umgehen?

DeddyH 8. Nov 2011 10:43

AW: Prozentrechnung
 
Das sollte man IMO ja bereits im Vorfeld ausgeschlossen haben. Nur so wie jetzt wird ja das Ergebnis (wenn auch nur geringfügig) verfälscht.

Luckie 8. Nov 2011 10:46

AW: Prozentrechnung
 
Zitat:

Zitat von bernau (Beitrag 1134968)
Zitat:

Zitat von DeddyH (Beitrag 1134965)
Wieso eigentlich das +1 jeweils? Die Größe sollte doch Höhe * Breite entsprechen, oder gibt es da Toleranzen, die mir bislang unbekannt sind?

Vieleicht um eine Exception DivByZero zu umgehen?

Also wenn das der wirkliche Grund ist und ich sein Lehrer wäre, hätte er von mir dafür einen Punkt zusätzlich bekommen wegen Kreativität. :mrgreen:

MGC 8. Nov 2011 10:47

AW: Prozentrechnung
 
Und wie hast Du das Problem jetzt gelöst?
Zeig doch mal Deine neue Code-Zeile.

mquadrat 8. Nov 2011 10:48

AW: Prozentrechnung
 
Ich tippe ja eher drauf, dass es eine leichte "in der Informatik wird ab 0 gezählt" Verwirrung war :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr.
Seite 1 von 4  1 23     Letzte »    

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