Autor Beitrag
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 20.03.05 18:58 
Hi Leute!

Wollte euch fragen wie man in Delphi ein 3 dimensionales Ball darstellen kann.

Und es sollte sich bewegen wie bei Lotto.

Habe nur dies geschafft.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Timer1: TTimer;
    Image2: TImage;
    Timer2: TTimer;
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  x,y:Integer;
implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.canvas.Pen.color:=clwhite;
image1.canvas.brush.color:=clwhite;
image1.Canvas.Ellipse(100+x,100,150+x,150);
x:=x+5;

image1.canvas.Pen.color:=Random(989498);
image1.Canvas.Brush.color:=Random(984848);
image1.canvas.Ellipse(100+x,100,150+x,150);


end;

procedure TForm1.FormCreate(Sender: TObject);
begin
x:=0;
y:=-140;
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
image2.canvas.Pen.color:=clwhite;
image2.canvas.Brush.color:=clwhite;
image2.Canvas.Ellipse(100-y,100,150-y,150);
y:=y+5;

image2.canvas.Pen.color:=Random(984981);
image2.Canvas.Brush.color:=Random(941619);
image2.canvas.Ellipse(100-y,100,150-y,150);
end;

end.


Moderiert von user profile iconChristian S.: Code- durch Delphi-Tags ersetzt.
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: So 20.03.05 19:43 
Versuch's mal mit OpenGL. Die Bewegung der Bälle musst du allerdings selber programmieren, es gibt logischerweise keine fertigen Funktionen für solche spezifischen Probleme.
Das ganze korrekt zu programmieren ist allerdings nicht ganz einfach, vor allem weil die Bälle miteinander kollidieren können. Da solltest du eine Ahnung von Physik haben: Was du willst ist das Analoge zu Billard, einfach in 3D und mit Gravitationseinfluss.
Elite
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 20.03.05 20:43 
Schau dir mal GLScene an.
Das ist eine Komponentensammlung(OGL-Wrapper), mit deren Hilfe du ohne eine Zeile Code 3D-Kugeln darstellen kannst. Bewegen über einfaches Verändern der Koordinaten. Kollisionsabfrage ist iirc auch mit drin. Hier im Forum gibts einen kurzen GLScene-Einsteigerkurs, der dich zu den ersten sichtbaren Bildern führt, also notwendig ist.
Probier` s mal, lohnt sich wirklich!