AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Annäherung an Pi mit Monte carlo, paintbox
Thema durchsuchen
Ansicht
Themen-Optionen

Annäherung an Pi mit Monte carlo, paintbox

Ein Thema von Borgschüler · begonnen am 19. Jan 2012 · letzter Beitrag vom 19. Jan 2012
Antwort Antwort
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#1

AW: Annäherung an Pi mit Monte carlo, paintbox

  Alt 19. Jan 2012, 12:04
Hallo,

Vielleicht legt sich kurz ein anderes Fenster drüber.
Das sehe ich auch so. Denn wenn man folgendes liest, kann es doch nur so sein das die Paintbox teilweise neugezeichnet wird.
Angefangen hab ich mit length/width 400/400, dann hate ich links einen streifen wo es funktioniert und rechts.
Und dieses mögliche Problem sollte gelöst werden.

Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  i,x,y : integer;
begin
  if FPainting then
    for i := 1 to 100000 do
      begin
        x:= random(200);
        y:= random(200);
        if (sqrt(x*x+y*y) < 200) then
          paintbox1.canvas.pixels[x,y] := clred
        else
          paintbox1.canvas.pixels[x,y] := clgreen;
      end
  else
    PaintBox1.Canvas.FillRect(Rect(0, 0, PaintBox1.Width, PaintBox1.Height));
end;
Gut das ist jetzt eine der aufwendigeren Lösungen. Diese hat aber einige Probleme. Da random(200) immer wieder andere Werte liefert, würde bei jedem neuzeichnen sich das Bild ändern. Dann dauert ein Neuzeichnen wegen for i := 1 to 100000 do auch etwas länger. Und ich denkt der TE ist mit dem Algorithmus auch noch nicht fertig. Es ist ja erst mal nur die Visualisierung. Da fehlt ja noch das Ausrechnen von PI.

Liebe Leute, je nach dem wo die paintbox platziert ist, ist ein anderer teil zu sehn, bzw an einer stelle sieht man wirklich ein perfektes quadrat! aber seht selbst.

Wie kann das bitte sein? geht garnicht in meinen kopf!

ich werde jetzt die pi berechnung durchführen, und dann das ergebnis präsentieren.
Da wird vermutlich ein Streifen des Formulars, mit allem was sich in diesem befinde, nach dem Button1Click fertig ist neugezeichnet. Probiere doch mal in deiner Variante die PaintBox durch ein Image zu ersetzen. Die TImage-Komponente hat auch eine Canvas Eigenschaft und lässt sich in deinem Fall wie eine PaintBox verwenden. Hat aber den Vorteil, dass sie sich merkt was gezeichnet wurde und beim Neuzeichen das wieder herstellt.

Einbeliebigername.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:40 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-2025 by Thomas Breitkreuz