Entwickler-Ecke

Sonstiges (Delphi) - Das Galton Brett


Karl12 - Di 22.02.11 13:51
Titel: Das Galton Brett
Hay

ich bin neulich auf das galton brett gestoßen und habe mich an die programmierung gemacht.. :D
die is ja soweit ganz einfach..

meine frage ist wie ich das am besten visualisieren kann und dann auch animieren kann.. :shock:
weil mit nem image kann ich zwar das brett an sich machen aber doch nicht einfach die regeln darauf anwenden oder ? :gruebel:

ich weis nicht..

wenn ihr mir helfen könntet wäre ich sehr dankbar xD :D


Xion - Di 22.02.11 14:45

Also ganz banal wäre:

Du nimmst für jedes Kügelchen ein Image (oder ein Shape) und die bewegst du dann per Timer. Als Hintergrundbild kannst du ja das ganze Brett nehmen.


Gausi - Di 22.02.11 15:59

Das wäre aber auch extrem schlecht programmiert. ;-)

Sowas malt mal selbst auf einem Bitmap, und wenn man mit dem Malen fertig ist, kopiert man das Bitmap in ein TImage, auf eine Paintbox, oder direkt auf das Canvas der Form. :)

Knackpunkt ist natürlich das Berechnen der Koordinaten der einzelnen Kugeln - das muss man selber machen. Oder nach einer Klasse TGaltonBrett googeln, vielleicht gibt es das ja irgendwo. :lol:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
aBmp := TBitmap.Create;
try
  aBmp.Canvas.Brush.Color := ...

  for i := 0 to AlleKugeln do
  begin
     aBmp.Canvas.ellipse(Kugel.X - 2, Kugel.Y - 2, Kugel.X + 2, Kugel.Y + 2); // Kreis zeichnen
  end;

  // ...
  Image1.Picture.Bitmap.Assign(aBmp);
finally
  aBmp.Free;
end;