Autor Beitrag
-lx-
Hält's aus hier
Beiträge: 11

Win XP
Delphi 7 Personal
BeitragVerfasst: Di 20.09.05 18:40 
... man ihren Weg nachverfolgen kann! ?


Hallo erstmal.

Und zwar hat mich heute mein Info-Lehrer ein wenig ins grübeln gebracht. Er hatte ein Delphi Programm auf dem eine Fliege zu sehen war. Diese bewegte sich nach belieben in alle möglcihen Richtungen jedoch mit Pausen dazwischen. Wie man Objekte verschiebt ist mir klar nuw ie kann man sie verschieben, dass man deren Weg mitverfolgen kann??

Ich hab dazu nichts wirklich brauchbares gefundne und wüsste jetzt auch nicht, wie man des irgendwie lösen könnte.


Ich hoffe mir kann hier jemand zu dieser warscheinlich einfachen Aufgabe helfen!



mfg
CYa


Moderiert von user profile iconChristian S.: Topic aus Sonstiges verschoben am Di 20.09.2005 um 19:46
ManuelGS
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 173

Win XP HE, Suse Linux
D6, D7, D2005 Personal
BeitragVerfasst: Di 20.09.05 18:45 
Du meinst, wie man sowas animieren kann?

_________________
"Leben ist gänzlich Bühne und Spiel; so lerne denn spielen
und entsage dem Ernst - oder erdulde das Leid." - Palladas von Alexandria
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: Di 20.09.05 18:48 
Wie wäre es, wenn du einfach ne Fliege zeichnest, und diesee verschiebst, ohne dass du n repaint o.ä. reinsetzt.....dann zieht die Fliege ne spur hinter sich her und du weißt, wo sie hergeflogen ist
Oder wie meinst du das?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 20.09.05 19:08 
Moin!

Meinst du sowas ähnliches?

cu
Narses
Einloggen, um Attachments anzusehen!
-lx- Threadstarter
Hält's aus hier
Beiträge: 11

Win XP
Delphi 7 Personal
BeitragVerfasst: Di 20.09.05 19:55 
Ohje... ich hab mich wohl wieder mal unverständlich ausgedrückt!

Also... es ist ja so. Man kann die Position von z.B. einer Grafik durch..

ausblenden Delphi-Quelltext
1:
2:
Grafik.top:= random(500);
Grafik.left:= random(600);


mit Hilfe eines Zufallwertes verändern. Nehmen wir an, wenn man mit der Maus auf die Grafick klickt, dann bekommt die Garfik eien neue Zufallsposition zugewiesen. Erst war sie auf der rechten Seite dann ist sie plötzlich auf der Linken.

Ich würde aber gerne wissen, wie man das machen kann, dass man die Grafik dazu bringen kann, einem Weg sozusagen zu folgen.

Also nicht dass sie auf einmal verschwindet und wieder woanders auftaucht, sondern dass die Garfik rüber rutscht, rüber läuft, sich rüber bewegt. Quasi einem Pfad, einem Weg folgt.



Ich hoffe ihr wisst jetzt was ich meien!



mfg
Cya


/Edit: Ja genau sowas meien ich... nur dass sich die Fliege oder die Garfick noch großfläschiger sich bewegt.

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: Di 20.09.05 20:59 
ZU dem Anhang: ICh mags nich, wenn mir angezeigt wird "Ungültiges Streamformat" ^^
HAst das mit D7 programmiert?
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 20.09.05 21:03 
Moin!

Da hier bisher sonst keiner einen Anhang gepostet hat, werd´ ich wohl gemeint sein... :wink:
user profile iconKroni hat folgendes geschrieben:
ZU dem Anhang: ICh mags nich, wenn mir angezeigt wird "Ungültiges Streamformat" ^^

Das bleibt dir auch unbenommen, du darfst mögen oder nicht, was du willst! :mrgreen:

user profile iconKroni hat folgendes geschrieben:
HAst das mit D7 programmiert?

Yip.

user profile icon-lx- hat folgendes geschrieben:
nur dass sich die Fliege oder die Garfick noch großfläschiger sich bewegt.

Dann schau dich mal nach dem Bresenham-Algorithmus um, damit kannste die Pixel einer Linie sehr einfach berechnen; dir packste dann in ein Array und "läufst" diese entlang. Fertig. :wink:

cu
Narses
-lx- Threadstarter
Hält's aus hier
Beiträge: 11

Win XP
Delphi 7 Personal
BeitragVerfasst: Di 20.09.05 22:13 
Die "Fliege" soll ja nicht auf etwas vordefenierten entlang gleiten sondern sich zufällig drch den Raum bewegen.


Mh... ich weis jetzt nicht recht wie du das meinst.

Sorry...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 20.09.05 22:17 
Moin!

user profile icon-lx- hat folgendes geschrieben:
Die "Fliege" soll ja nicht auf etwas vordefenierten entlang gleiten sondern sich zufällig drch den Raum bewegen.

Mh... ich weis jetzt nicht recht wie du das meinst.

Du bestimmst natürlich einen zufälligen Punkt, zu dem die Linie geht; wenn die Fliege angekommen ist, nimmst du einen neuen.

Das ganze auf lineare Strecken zu beschränken hat den Vorteil, dass man es relativ einfach realisieren kann; zugegeben, eine "echte" Fliege würde eher zufälligen Bezierkurven folgen, aber das ist nicht ganz trivial umzusetzen... :wink:

cu
Narses
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Di 20.09.05 22:33 
1.(Ich würde aber gerne wissen, wie man das machen kann, dass man die Grafik dazu bringen kann, einem Weg sozusagen zu folgen.)

2.(Die "Fliege" soll ja nicht auf etwas vordefenierten entlang gleiten sondern sich zufällig durch den Raum bewegen).

Irgendwie wiederspricht sich das, oderseh Ich das falsch.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 20.09.05 22:38 
Moin!

user profile iconBlackheart666 hat folgendes geschrieben:
Irgendwie wiederspricht sich das, oderseh Ich das falsch.

So gesehen siehst du das richtig. :wink:

Da die Endpunkte (ob nun Linie oder Bezier) zufällig gewählt sind, trifft "auf diese Weise" beides zu. :wink:

Wenn du mehr über Bezier-Kurven erfahren willst, hindert dich niemand, sowohl die Forum-Suche als auch Google zu "bemühen".

cu
Narses
-lx- Threadstarter
Hält's aus hier
Beiträge: 11

Win XP
Delphi 7 Personal
BeitragVerfasst: Mi 21.09.05 13:30 
Ohje ihr bringt mich in Verlegenheit ;)

Also die Grafik soll schon einem "Weg" folgen aber der Weg soll zufällig defeniert werden.

Also dass man eien lineare Funktion verwendet hört sich ganz gut an nur wie bringt man die Grafik dazu, sich von Punkt Azu Punkt B zu bewegen ??


mfg
Cya
hallo
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: Mi 21.09.05 13:41 
Also ein funktion dazu wäre ungefähr sowas:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
ontimer....
begin
a:=random(2); //ggf. mus man 3 einsetzen....
b:=random(2);
if (a=1)then fly.top:=fly.top+1;
if (b=1)then fly.left:=fly.left+1;
if (a=2)then fly.top:=fly.top-1;
if (b=2)then fly.left:=fly.left-1;
//bei 0 so lassen wie es ist
end;


Und dann den TImer alle 100 ms auslösen oder sowas in der art!

Wenn du willst dass sie z.B. eine kurve fliegt, kannst du sinus und cosinus hernehmen:

cos(x);
sin(x);

geht aber auch zufällig mit der obigen funktion.

Wenn du das aber nicht kennst dann kannst du mal in Wikipedia nachschauen!

So ein Programm was ihr Programmieren wollt kenn ich. Da muss man mit der Maus die Fliege erschlagen!

Gruß
hallo

PS: Kann sein dass ich das Problem nicht ganz erkannt hab, aber ich glaube er wollte wissen, wie man ein Objekt so von a zu b verschiebt, dass man die zwischenpunkte sehen kann.

_________________
Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
-lx- Threadstarter
Hält's aus hier
Beiträge: 11

Win XP
Delphi 7 Personal
BeitragVerfasst: Mi 21.09.05 14:33 
Also bis jetzt habe ich einen roten Punkt. Den soll man fangen, wenn man aber mit der Maus drüber geht, bekommt der Punkt einne neue Zufallskoordinate zugewiesen. Ich möchte es jetzt aber so machen, dass dieser rote Punkt sich zu einem zufälligne neuen Punkt HINBEWEGT... also dass man seien bahn mitverfolgen kann. Also immer wenn die Maus den Punkt "berührt" bekommt er eien neue zuföllige Flugbahn bzw. Endpunkt zugeteilt.

Was hat es mit " fly.top " aufsich?

" Fly " find ich niergends und Delphi sagt dass er den Befehl nicht kennt.


Sorry... ihr schlagt sicherlichs chon die Hände überm Kopf zusammen ;)




mfg
Cya
hallo
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 450

WIN XP, SuSE 9.3
D3 Prof, D6 Pers, 2005 Pers
BeitragVerfasst: Mi 21.09.05 14:40 
fly kann einfach ein TPanel oder TShape oder ähnliches mit dem Name-Attribut Fly sein!

Am besten ist es, wenn du schon vorher die Flugbahn berechnest.

Wenn deine Fliege auch kruven fliegen soll, wäre sinus und cosinus unteressant für dich!

_________________
Der beste je Programmierte Trojaner: Windows XP
Wäre es nicht adequat, den Usus heterogener Termini zu minimieren?
Kroni
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 720

Win 98, Win ME, Win2k, Win XP
D3 Pro
BeitragVerfasst: Mi 21.09.05 14:43 
guck mal nach Polarkoodrdinaten.....=)
-lx- Threadstarter
Hält's aus hier
Beiträge: 11

Win XP
Delphi 7 Personal
BeitragVerfasst: Mi 21.09.05 17:35 
Ich poste jetzt einfach mal ne Quelltext so wie ich es bis jetzt habe.

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:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    SObjekt: TShape;
    Label1: TLabel;
    procedure SObjektMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SObjektMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
SObjekt.Left:= random(800) ;
SObjekt.Top:= random(500) ;
end;

end.


Mit dem " top " habe ich ja hier...


Wenn ich nach Polarkoordinaten suche, finde ich hie rim Board nichts, bei Google nichts und in Delpi auch nichts.

ahje.... :(


Wie kann ich den lineare Funktionen mit zufälligen Werten erzeugen? Und wie kann ich der Grafik sagen, dass si ihr folgen soll ??? Ich weis jetzt echt net, wie man des machen soll...
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 21.09.05 23:53 
Moin!

user profile icon-lx- hat folgendes geschrieben:
Wie kann ich den lineare Funktionen mit zufälligen Werten erzeugen?

Du sollst keine linearen Funktionen erzeugen, sondern zufällige Punkte und diese mit einer Linie verbinden. Wenn du zwei Punkte hast, dann liefert dir der Bresenham-Algo auf einfache Weise die Punkte "dazwischen". Die schreibst du in ein Array und läufst in jedem Timerevent ein Array-"Element" (=Punkte auf der Linie) weiter. Wenn kein Punkt mehr im Array ist, suchste dir wieder einen neuen und berechnest die Punkte bis dahin wieder ins Array und so weiter... :wink:

user profile icon-lx- hat folgendes geschrieben:
Und wie kann ich der Grafik sagen, dass si ihr folgen soll ???

s.o., Punkte in ein Array und im Timer-Ereignis "durchgehen" und an die Grafik zuweisen.

user profile icon-lx- hat folgendes geschrieben:
Ich weis jetzt echt net, wie man des machen soll...

Hmm :| vielleicht solltest du auch erstmal noch ein paar Anfänger-Tuts machen, oder? :wink:

cu
Narses