Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Sa Jul 12, 2025 19:12

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Fr Jul 09, 2004 13:02 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Hallo,

ich habe mal ne Frage in bezug auf "Wie bewege ich ein Objekt durch Richtung und Geschwindigkeit richtig?".
Bisher habe ich es so gemacht, das ich Einfallswinkel = Ausfallswinkel hatte, aber das muss sich ändern, nun möchte ich mit
Geschwindigkeit und Richtung arbeiten.
Was ich mir dachte, ist durch die alte Position, die geschwindkeit(strecke) und dem Winkel (richtung, oder wie soll ich die angeben?!)
Die neue Position herauszufinden, sollte mit Sin,Cos und Tan gehen oder?

Aber, gibt es eine "elegantere Methode", denn ich möchte jetzt mal versuchen es zu "perfektionieren", sonst mache ich immer so dahingefuschte sachen ;)

Habt ihr meine Frage so verstanden?

PS: Ich wusste nicht nach was ich in der Suche suchen soll, deshalb, entschuldigt wenn es dieses Thema schon gab.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 09, 2004 13:40 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Du möchtest also das abprallen eines Gegenstandes berechnen?

Wichtig wäre noch von wo du abprallen möchtest. Dem Boden oder einer Wand?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 09, 2004 13:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Einer Wand... Diese ist gerade, momentan.
Ich möchte das einfach so machen, das ich auch die Geschwindgkeit besser berechnen kann

Noch ne Frage, es gibt in Delphi beim Sin. unterschiede wie bei dem im Taschenrechner, pls, sagt mir wie ich damit richtig umgehe.

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 09, 2004 14:19 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Die Trigonometrie-Funktionen in Delphi arbeiten alle im Bogenmaß, hast du das berücksichtigt?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 09, 2004 15:17 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Habe das ja noch net gemacht, ich wollte wissen, OB es eine bessere Lösung GIBT.
Und dann, genau was du sagtest "Bogenmaß", kannst du mir erklären, was da der Unterschied ist? bzw. wie ich das von Winkel in Bogenmaß umrechne? ;)

ThX

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Jul 09, 2004 15:45 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jul 29, 2003 00:11
Beiträge: 436
Bogenmaß unterteilt einen Kreis nicht in 360°-Schritte, sondern ein Kreis geht da von 0 bis 2pi.
360° = 2pi
180° = pi
90° = pi/2
usw.
Vom Gradmaß ins Bogenmaß:
b=(g/180)*pi
Vom Bogenmaß ins Gradmaß:
g=(b/pi)*180

Wenn du das nicht per Hand machen willst, bietet dir Delphi dafür auch die Funktionen DegToRad und RadToDeg. Evtl. unit Math einbinden, da bin ich mir gerade nicht sicher.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 11, 2004 14:29 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Sodele
Code:
  1. FUNCTION OldToNewPos(bPos: TVertex; richtung, geschwindigkeit:single):TVertex;
  2. VAR
  3. a,b: single;
  4. res: TVertex;
  5. BEGIN
  6. a := 0; b := 0;
  7.   a := geschwindigkeit*sin((richtung/180)*pi);
  8.   a := bPos[0] + a;
  9.   if a < 0 then a := -a;
  10.   b := geschwindigkeit*cos((richtung/180)*pi);
  11.   b := bPos[2] + b;
  12.   if b < 0 then b := -b;
  13.   res[0]:=a;res[1]:=0;res[2]:=b;
  14.   Result := res;
  15. END;

Klappt soweit ganz gut ;-)
Also Danke schonmal soweit... allerdings, wenn richtung=180 ist, dann bleibt das Objekt auf dem selben Punkt.
Darf ich das nicht einfac so: a := bPos[0] + a; machen und muss erst abfragen, welches das kleinere ist und dann Passend Addieren/Subtrahieren ?

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Jul 11, 2004 15:58 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Okt 27, 2003 17:46
Beiträge: 788
Ups, dumm von mir, habs hinbekommen!
Code:
  1. FUNCTION OldToNewPos(bPos: TVertex; richtung, geschwindigkeit:single):TVertex;
  2. VAR
  3. a,b: single;
  4. res: TVertex;
  5. BEGIN
  6. a := 0; b := 0;
  7.   a := geschwindigkeit*sin((richtung/180)*pi);
  8.   a := bPos[0] + a;
  9.   b := geschwindigkeit*cos((richtung/180)*pi);
  10.   b := bPos[2] + b;
  11.   res[0]:=a;res[1]:=0;res[2]:=b;
  12.   Result := res;
  13. END;


Für jeden der sowas braucht...
momentane position & richtung & geschwindigkeit = neue position, das macht diese Funktion.
Könnte bestimmt mal brauchbar sein für jeden ;)

_________________
www.audi32.de


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 8 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 18 Queries | GZIP : On ]