Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#10

Re: festgeldentwicklung mit canvas als Graph darstellen

  Alt 21. Mai 2007, 19:53
Versuchs mal auf einem Papier und übertrage die Idee.

Als erstes brauchst du einen Umrechnungsfaktor (besser zwei) so nach der Art: 1 Jahr entspricht 50Pixel und 100€ entsprechen 70Px.

Wenn du dann das erste Jahr einzeichnen willst, hat das untere Ende eine beliebige y-Position, sagen wir mal 600. (Musst du von deinem Form abhängig machen). Wenn der einzuzeichenende Wert bei 550 liegt, ist die y-Koordinate des oberen endes bei 600-550/100*70=215 ( wie du wahrscheinlic schon festgestellt hast, die der Origo deines Canvassystems in der linken oberen Ecke und die y Werte nehmen nach unten hin zu)

Die linken ecken liegen dann bei einem beliebigen Wert, sagen wir mal 100, die rechten dann bei x=100+50;

Für das n-te Jahr hast du also die Linke ecke bei 100+n*50 und die y-Werte so wie für das erste Jahr bestimmt.

Mit der Technik kannst du dir recht einfach dann ein Balkendiagramm bauen.

SEHR WICHTIG ist es, dass du diese festen Werte wie umrechnungsfaktoren nicht fest reinschreibst, sondern immer ausrechnest. Wenn du z.b. einen Satz mit 10 Jahren einzeichnen willst, könnte deine Breite der Balken z.B. bei ((image.width-image.width/10) div 10) liegen. Dann hast du links und rechts noch einen schönen Rand mit einem Zehntel der CanvasBreite als Größe. für den y-Koeffizient könntest du vor dem Zeichnen den größten Geldbetrag auslesen und daraus dann den Umrechnungsfaktor errechnen. So hast du nie Probleme, wenn du mal mehr oder weniger Jahre, mehr oder weniger Geld oder auch nur ein kleineres Image benutzen willst.

Am Anfang ist es vielleicht etwas mehr Mühe, aber sowas zählt zum schönen Programmieren, was dir später sehr viel Zeit sparen kann.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat