AGB  ·  Datenschutz  ·  Impressum  







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

Lineare Funktionen

Ein Thema von galoru · begonnen am 7. Mär 2012 · letzter Beitrag vom 7. Mär 2012
Antwort Antwort
Seite 1 von 2  1 2      
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#1

Lineare Funktionen

  Alt 7. Mär 2012, 18:21
Nabend Leute,

ich habe ein kleines Problem und hoffe, dass ihr mir weiterhelfen könnt.
Ich habe ein kleines Programm geschrieben, mit dem die Anzahl der Stimmen von Personen etc. in einem Säulendiagramm ausgegeben werden soll. Irgendwie werden die Balken zu groß oder zu klein.


Paintbox : 361x361
Ich habe bei x=20 angefangen und x=341 aufgehört.
Bei y=66 angefangen und y=331 aufgehört.

Hoffe ihr könnt mir weiterhelfen, da ich schon viel versucht habe und nichts funktionierte.

lg

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,d,e,f :single;


begin



if (Edit1.Text='') or(edit2.text='') or (edit3.Text='')
or (edit4.text='') then showmessage ('Bitte Werte eingeben!') else begin

with paintbox1.Canvas do begin

pen.width:=2;


moveto(20,66);
lineto(20,331);


lineto(341,331);
moveto(13,265);
lineto(20,265);
moveto(13,199);
lineto(20,199);
moveto(13,133);
lineto(20,133);
moveto(13,66);
lineto(20,66);

Textout(1,35,'Stimmen');

a:=strtofloat(edit1.text);
b:=strtofloat(edit2.text);
c:=strtofloat(edit3.text);
d:=strtofloat(edit4.Text);



e:=a+b+c+d;
f:=(e)*0.5;

textout(0,193,(floattostr(f)));
textout(0,60,(floattostr(e)));





brush.color:=clred;
fillrect(rect(60,330,100,round (260-(a))));

brush.color:=clblue;
fillrect(rect(140,330,180,round (260-(b))));

brush.color:=clyellow;
fillrect(rect(220,330,260,round (260-(c))));

brush.color:=clgreen;
fillrect(rect(300,330,340,round (260-(d))));













end;
end;
end;




procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button2Click(Sender: TObject);
var t: integer;
begin

PaintBox1.Invalidate;



end;

end.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:25
Benutze doch bitte Delphi-Tags, dann ist der Code viel besser zu lesen (entweder über den "Helm" im Beitragseditor oder mit
Code:
[delphi]Code[/delphi]
). Und zu Deinem Problem: meinst Du jetzt Prozentrechnung, oder wie genau sollen die Säulen dargestellt werden?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#3

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:40
Ok danke für den Tipp
Hier mein Problem, ach ja bitte nicht bei den Bezeichnungen wundern ^^
http://s7.directupload.net/file/d/2822/swkx3m7u_jpg.htm
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#4

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:48
Du kannst nicht einfach die Werte einfach von der Pixelhöhe der Balken abziehen. Du musst sie in Relation setzen.

so ähnlich:
BalkenhöhePixel = Wert * Pixel_Y-Achse/MaxWert_Y-Achse
(bitte Formel ggf überprüfen)
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:51
Das sollte sich doch mit einfacher Prozentrechnung hinbekommen lassen. Die 130 entsprechen dann 100 %, die 23 wäre demnach 17,7 % usw. Nun nimmst Du die Anzahl der Pixel von der unteren zur oberen Kante, das entspricht dann wiederum 100 %. Wenn Du nun davon 17,7 % errechnest, weißt Du, wie hoch der Balken werden muss. Bei dem ganzen aber bitte mit Gleitkommazahlen rechnen und erst bei der Ausgabe (= Zeichnen) runden, sonst geht das wahrscheinlich in die Hose.

[edit] BTW: Man kann auch an seinen Beitrag Grafiken anhängen, dann bleiben sie uns erhalten. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#6

AW: Lineare Funktionen

  Alt 7. Mär 2012, 18:57
Ja und wenn ich statt 23, 376 habe? Das sind ja keine 17,7% mehr davon?
Also so :fillrect(rect(60,330,100,round ((a*100/(a*100/e))))); ?
Ich checks grad gar nicht ,sorry.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Lineare Funktionen

  Alt 7. Mär 2012, 19:03
Dann ändert sich doch auch die Anzahl, oder nicht?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#8

AW: Lineare Funktionen

  Alt 7. Mär 2012, 19:06
Ja die Anzahl ändert sich ja , trotzdem versteh ich nicht genau was du mit de Pixeln von der unteren bis zur oberen Kante meinst.
Die Pixel von dem Balken?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Lineare Funktionen

  Alt 7. Mär 2012, 19:07
Ist das Diagramm nicht immer gleich hoch?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
galoru

Registriert seit: 12. Okt 2011
27 Beiträge
 
#10

AW: Lineare Funktionen

  Alt 7. Mär 2012, 19:13
Da Diagramm an sich ist immer gleich hoch, nur die Verteilung der Stimmen ändert sich ja im Verhältnis zur Gesamtanzahl.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:05 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