AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Objekt bewegen

Ein Thema von Delphi-lerner · begonnen am 18. Mai 2003 · letzter Beitrag vom 18. Mai 2003
Antwort Antwort
Seite 2 von 2     12
Delphi-lerner

Registriert seit: 8. Mai 2003
16 Beiträge
 
#11
  Alt 18. Mai 2003, 13:39
Unser Infolehrer hat das mit Canvas und oder Shapes gemacht....also muss das ja irgendwie mit Canvas gehen...
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#12
  Alt 18. Mai 2003, 13:39
Also direkt wirst du das wohl nich hinkriegen, dass du sagt, dsa ding soll sich auf der linie bewegen. Da müsstest irgendwas mit ner schleife und nem Timer machen.
  Mit Zitat antworten Zitat
Basic-Master

Registriert seit: 9. Mär 2003
Ort: Brilon
395 Beiträge
 
Delphi 2007 Enterprise
 
#13
  Alt 18. Mai 2003, 13:43
wenn du das wirklich mit canvas machen musst, dann musst du so weit ich weiss alles neu zeichnen...
[Edit] ich hab mal n bischen rumexperimentiert:
Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    public X:Integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject); //brauchst n timer
begin
x := x+1;
self.Canvas.Pen.Color := self.Color;
self.Canvas.Rectangle(0,0,self.Width,self.Height);
self.Canvas.Pen.Color := clblack;
self.Canvas.Ellipse(x+1,0,x+30,30);
end;

end.
[/EDIT]
Christian
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#14
  Alt 18. Mai 2003, 13:49
also wenn du das ohne OPenGL und DirectX machen willst und du deine Bildchen auf einer Linie bewegen willst, dann musst du die Koordinaten der Linie auf die Koordinaten des Bildchen übertragen. Das ganze musst du dann mit einem Timer machen.
Sind die Koordinaten der "Linie" bekannt? Und was ist das für eine "Linie"? eine einfach Gerade oder was?
Alexander
  Mit Zitat antworten Zitat
Delphi-lerner

Registriert seit: 8. Mai 2003
16 Beiträge
 
#15
  Alt 18. Mai 2003, 14:57
procedure erdbahn(rx,ry: integer);
var grad: integer;
phi: real;
begin
xs:=breite div 2;
ys:=breite div 2;
for grad:=0 to 1800 do
begin
phi:=180/Pi*grad;
x:=round(rx*cos(phi))+xs;
y:=round(ry*sin(phi))+ys;
form1.Canvas.Pixels[x,y]:=clgreen;
end;
end;


So wird die Bahn erzeugt. Es handelt sich um eine Ellipse. Das Objekt soll auf der Bahn laufen..sieht dann so aus, wie Erde um die Sonne.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#16
  Alt 18. Mai 2003, 15:05
Da hast du ja ganz schön was vor...da musst du mit parabeln und so arbeiten. das is nich einfach, zumindest für mich

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.642 Beiträge
 
Delphi 2009 Professional
 
#17
  Alt 18. Mai 2003, 16:30
Hallo,
habe ich nicht zu diesem Thema neulich ein Beispiel gegeben ?
Beispiel
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#18
  Alt 18. Mai 2003, 16:45
Dein Beispiel is ja schön und gut. aber mit ner elipse is das was ganz anderes wie mit nem kreis. deine planeten drehen sich im kreis. er will die an einer elipse lang laufen lassen.

Man liest sich, Stanlay 8)
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.642 Beiträge
 
Delphi 2009 Professional
 
#19
  Alt 18. Mai 2003, 17:07
Hallo,
stimmt. Das Beispiel ist auch gut.
Das sind die Formeln für die Berechnung der Erdbahn:
Delphi-Quellcode:
    FXmoveEarth:=Xm+Round((FSun.Width-40)*sin(2*Pi*FTime/360));
    FYmoveEarth:=Ym+Round((FSun.Width-40)*cos(2*Pi*FTime/360));
Darin ist FSun.Width-40 der Radius. Die Kreisbahn ist hier ein Sonderfall!!! Und zwar genau der Sonderfall, wenn beide Radien gleich sind. Wenn die Radien unterschiedlich sind, bewegt sich die Erde auf einer Ellipse.
Das ganze geht auch noch weiter. Wenn Du in den Formeln unterschiedliche Frequenzen verwendest bewegt sich die Erde entlang einer Lissajou-Figur.
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#20
  Alt 18. Mai 2003, 18:27
Ne Lissaj... was?
Was isn das fürn ding?
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf