![]() |
Binomialverteilung -> Graphen
Hallo,
ich habe mir ein kleines Tool gebastelt, welches eine beliebige Binomialverteilung ausgeben kann. Nun möchte ich das Programm noch ein wenig erweitern, indem man die errechneten Werte als Graphen oder Säulendiagramm ausgeben lassen kann. Wie mache ich das am besten? Danke :) |
Re: Binomialverteilung -> Graphen
Ich mach so was ja immer selbst.
Es gibt aber was das heist TChartFX ist standard mäßig drin in Delphi ( 5 Pro ) damit geht sowas glaubig auch ... |
Re: Binomialverteilung -> Graphen
Oder TJvChart aus den JEDIs
|
Re: Binomialverteilung -> Graphen
Zitat:
|
Re: Binomialverteilung -> Graphen
In dem er die Säulen selber zeichnen mit den entsprechenden Zeichenroutinen von
![]() |
Re: Binomialverteilung -> Graphen
Zitat:
|
Re: Binomialverteilung -> Graphen
Zitat:
|
Re: Binomialverteilung -> Graphen
Liste der Anhänge anzeigen (Anzahl: 1)
Also für ein "stinknormales" Koordinatensystem würde es dann so aussehen?
Delphi-Quellcode:
Wie es aussieht, könnt ihr im Attachment sehen.
procedure TForm1.Zeichnen;
begin Image.Canvas.Pen.color := clblack; Image.Canvas.MoveTo(10, 180); // Abzisse zeichnen Image.Canvas.LineTo(240, 180); // Abzisse zeichnen Image.Canvas.MoveTo(20,10); // Ordinate zeichnen Image.Canvas.LineTo(20,190); // Ordinate zeichnen Image.Canvas.MoveTo(235,175); // Achsenpfeile Abzisse Image.Canvas.LineTo(240,180); // Achsenpfeile Abzisse Image.Canvas.MoveTo(235,185); // Achsenpfeile Abzisse Image.Canvas.LineTo(240,180); // Achsenpfeile Abzisse Image.Canvas.MoveTo(15,15); Image.Canvas.LineTo(20,10); Image.Canvas.MoveTo(25,15); Image.Canvas.LineTo(20,10); Image.Canvas.TextOut(30,5,'y'); Image.Canvas.TextOut(240,185,'x'); end; Ist das vom Prinzip her so richtig oder zu umständlich? Danke! |
Re: Binomialverteilung -> Graphen
Wenn du es selbermachen willst, ist das der Weg. Aber was spricht gegen TChart/TJvChart ?
|
Re: Binomialverteilung -> Graphen
An und für sich goldrichtig. Du kannst bestenfalls 2 Dinge noch optimieren bzw. erweitern:
1) Manche MovTo() kannst du durch geschickte Zeichenreihenfolge sparen, da LineTo() auch den Zeichencursor verschiebt, und du ja zum Teil zusammenhängende Linienstücke hast. 2) Für eine Version die mehr Freiraum bietet, würde ich die Koordinaten nicht fest eingeben, sondern von der Größe des Bildes abhängig machen in dem du zeichnest. |
Re: Binomialverteilung -> Graphen
Naja, damit es schöner aussieht könnte man ja auch sowas hier machen...
Delphi-Quellcode:
MfG
procedure TForm1.Zeichnen;
begin with Image.Canvas do begin Pen.color := clblack; //... //... end; end; |
Re: Binomialverteilung -> Graphen
Super, vielen Dank!
Ich habe jetzt folgendes Problem, dass ich sehr viele Gleitkommazahlen habe, aber um zum Beispiel mein Rechteckt für ein Säulendiagramm zu zeichnen, brauche ich ja diese Gleitkommazahlen als Integer. Beispiel: x1 : 0,222 y1 : 0,565 x2 : 0,222 + b y2 : 181 Mein zweites Problem ist, dass dieses b (siehe oben bei x2) ja die Breite des "Streifen" angeben soll. Diese Breite ergibt sich aus der Länge des Bernoulli Experiments (viele Wiederholungen -> kleine Streifen, damit es trotzdem in dem Diagramm dargestellt werden kann). Diese Breite b ist leider auch eine Gleitkommazahl und somit in dieser Hinsicht nicht verwendbar. Ich wäre dankbar, wenn mir jemand helfen könnte. :) Danke :) |
Re: Binomialverteilung -> Graphen
Da wirst du dir einen geeigneten Maßstab wählen und dann die Wert entsprechend runden müssen.
|
Re: Binomialverteilung -> Graphen
Ok Super, vielen Dank! Alles klappt soweit :D
Nur noch 2 Fragen: Wie kann ich die Farbe der Schrift innerhalb des Canvas' ändern? Wie kann ich das gezeichnete während der Laufzeit wieder löschen, so dass ich wieder ein leeres Bild/Canvas vor mir habe? Vielen Dank! |
Re: Binomialverteilung -> Graphen
Canvas.Font.Color
|
Re: Binomialverteilung -> Graphen
Danke!
Und das: Zitat:
|
Re: Binomialverteilung -> Graphen
Delphi-Quellcode:
with Canvas do
begin Pen.Color := clWhite; Brush.Color := clWhite; Rectangle(0, 0, Width, Height); end; |
Re: Binomialverteilung -> Graphen
Zitat:
Ich würde einfach gerne das Bild, dass vorher voll gemalt ist wieder "zurücksetzen", sodass es halt ganz weiss ist. |
Re: Binomialverteilung -> Graphen
Dann übermale halt nur den Bereich des Bildes
|
Re: Binomialverteilung -> Graphen
Zitat:
|
Re: Binomialverteilung -> Graphen
Wie oben nur mit einem anderen Grenzen
|
Re: Binomialverteilung -> Graphen
Zitat:
|
Re: Binomialverteilung -> Graphen
Zitat:
Beispiel: Ich will die Schriftfarbe ändern. Ich sehe in der Hilfe zu TCanvas, dass es ein Member "Font" hat, also sehe ich mir die Hilfe zu TFont an, und entdecke, dass dieses ein Member "Color" hat. Also probier ich das doch mal zu ändern, und schau was dann passiert. Wenn du solche einfachen Hangeleien durch die Hilfe nicht lernst, wirst du hier für jeden kleinen Pup einen Thread aufmachen, und dich dann nicht ganz zu unrecht diversen Anfeindungen entgegen sehen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz