Autor Beitrag
Karl12
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 22.02.11 13:51 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: 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.

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)

Für diesen Beitrag haben gedankt: Karl12
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8553
Erhaltene Danke: 479

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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:

ausblenden 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;

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: Karl12