AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Flugbahn mit äusseren Einwirkungen berechnen
Thema durchsuchen
Ansicht
Themen-Optionen

Flugbahn mit äusseren Einwirkungen berechnen

Ein Thema von static_cast · begonnen am 16. Okt 2005 · letzter Beitrag vom 18. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#1

Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 21:21
Hoi,

ich brauche mal eure Hilfe da ich nicht wirklich das Matheformel Genie bin
und zwar geht es um eine Flugbahn mit äusseren Einwirkungen. Hier mal soweit wie ich es habe, nur nun weiß ich nicht weiter


Delphi-Quellcode:
type
  TTrajectory = record
    Steps : Integer;
    Course : Array of TPoint;
  end;

  TProjectile = class(TPersistent)
  private
    FGround : Integer;
    FPosition : TPoint;
    FAngle : Extended;
    FPower : Extended;
    FGravity : Extended;
    FWeight : Extended;
    FWind : Extended;
    FRange : Integer;
  public
    constructor Create;
    destructor Destroy; override;
    function Trajectory:TTrajectory;
  published
    property Angle:Extended read FAngle write FAngle; // Abschusswinkel
    property Power:Extended read FPower write FPower; // Abschussgeschwindigkeit
    property Weight:Extended read FWeight write FWeight; // Masse bzw Gewicht
    property Gravity:Extended read FGravity write FGravity; // Anziehungskraft
    property Wind:Extended read FWind write FWind; // Windgeschwindigkeit (positiv = Links, negativ = rechts)
    property Range:Integer read FRange write FRange; // Reichweitenbeschränkung
    property Position:TPoint read FPosition write FPosition; // Ausgangsposition des Projektils
    property Ground:Integer read FGround write FGround; // Boden
  end;
Delphi-Quellcode:
constructor TProjectile.Create;
begin
  inherited;
  FGravity:=9.80665; // 9,80665 m/s² auf dem 45.Breitengrad in Meereshöhe. 9,780 m/s² am Äquator.
end;

destructor TProjectile.Destroy;
begin
  inherited;
end;

function TProjectile.Trajectory: TTrajectory;
begin
  Result.Steps:=0;

  repeat
    Inc(Result.Steps);
    SetLength(Result.Course,Result.Steps);

    Result.Course[Result.Steps-1].X:=(FPosition.X) + Trunc(FPower * Cos(FAngle / 180 * Pi ) * Result.Steps);
    Result.Course[Result.Steps-1].Y:=Trunc(-(FPower * Sin(FAngle / 180 * Pi ) * Result.Steps - 0.5 * FGravity * Result.Steps * Result.Steps) + (FPosition.Y));

    if FRange > 0 then
      if Result.Course[Result.Steps-1].X >= Result.Course[Result.Steps-1].X + FRange then
      begin
        Inc(Result.Steps);
        SetLength(Result.Course,Result.Steps);
        Result.Course[Result.Steps-1].X:=Result.Course[Result.Steps-2].X;
        Result.Course[Result.Steps-1].Y:=FGround;
        Break;
      end;
  until Result.Course[Result.Steps-1].Y >= FGround;
end;
Ich hoffe ihr könnt mir dabei helfen

Viele Grüße,
Daniel
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#2

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 21:43
hast du ein physikbuch?
Christoph
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#3

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 22:09
Nein leider nicht, wobei es ja auch andere Quellen gibt wo dies erklärt wird, nur scheitert es dann noch immer am verständnis oder es umzusetzen

Ich denke um sowas zu verstehen muss man es schon etwas mehr _drauf_ haben (in diesem Gebiet) oder sich damit befasst haben, das geht wohl nicht mal so eben mit einem Wiki-Artikel... wie gesagt ich bin kein Mathegenie, war schon froh das es so einigermaßen funktioniert.
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#4

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 22:51
da reicht physik grundkurs aufm gymnasium.
alles was du wissen musst, ist dass kraefte auf den flugkoerper einwirken und sich addieren (die raumkomponenten der kraftvektoren).

du addierst alle kraefte, bildest daraus einen geschwindigkeitsvektor und addierst den dann zur geschwindigkeit des koerpers.

du weisst, ein koerper im vakuum hat eine konstante geschwindigkeit.
im gravitationsfeld der erde wirkt eben noch die anziehungskraft, daraus eine geschwindigkeit, ...

so solltest du schon mal einen schraegen wurf hinbekommen (abschussgeschwindigkeit vermischt/addiert sich mit geschwindigkeit ausgeuebt durch erdgraviation). guck dir einfach mal die positionsformel vom schraegen wurf an (x->y).

andere einfluesse wie z.b. wind/luftreibung solltest du auch einbauen koennen, wenn du das erstmal geschafft hast. wind hat mit luftreibung zu tun, deshalb sind beide quasi das gleiche. (60km/h rueckenwind im 60km/h schnellen verdecklosen auto merkt man nicht)
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von atreju2oo0
atreju2oo0

Registriert seit: 5. Dez 2003
Ort: Berlin
289 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 22:59
Das Problem dürfte in deiner Deklaration schon anfangen.

Wenn Du einen realistischen Flugverlauf darstellen willst musst Du einige Sachen noch ändern.
1) Der Wind sollte als Vektor eingehen, da er ja nicht immer nur von vorne oder hinten kommt sondern theoretisch aus allen Richtungen.
2) Die Reichweite wird nur durch den Anfangsimpuls bestimmt, dass heisst das Sie für die Berechnung der Schritte unrelevant ist!
3) Der Kraftansatz!!!!
Du musst Dir vorstellen, dass jede Beeinflussung als Kraft auf die Kugel wirkt.
Diese Kräfte stellst Du als Kraftgleichgewicht mit einer zusätzlichen Kraft F_res auf.
z.B.: Fg + Fan + FWind=F_res

Diese resultierende Kraft sollte vektoriell vorliegen und über die Beziehung
F=m*a kannst Du nun die Beschleunigung a ausrechnen.
Sobald Du die hast reicht es ein bestimmten Zeitintervall vorzugeben und Du kommst direkt auf die Position des Geschosses zu diesem Zeitpunkt!

In den Ansätzen hast Du es ja schon so gemacht!
Aber die oben genannten Punkte sollteste IMO beachten!
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 23:02
Zitat von static_cast:
und zwar geht es um eine Flugbahn mit äusseren Einwirkungen.
WAS für äußere Einwirkungen? Für den Windwiderstand zum Beispiel musst du Differentialgleichungen lösen.

Zitat von ripper:
da reicht physik grundkurs aufm gymnasium.
Und ich bezweifele, dass das im Mathematikgrundkurs des Gymnasiums gemacht wird. Das haben wir Bauingenieuer im dritten Semester Mathematik und im dritten Semster Mechanik gemacht.

Zitat von ripper:
wind hat mit luftreibung zu tun, deshalb sind beide quasi das gleiche.
Und genau das ist das Problem. Es ist nämlich Luftreibung, da kommen dann nämlich noch die aerodynamischen Gesetze mit ins Spiel. Und abhängig von der Geschwindigkeit verhalten sich die Luftmoleküle anders gegenüber der Fläche, auf die sie treffen.

Für den idealisierten schiefen WEurf im Vakuum reicht allerdings schon die Mathematik und das Physikverständnis der Mittelstufe aus. Und wenn ich mich recht erinner haben wir ihn auch in der acht oder neun durchgenommen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#7

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 23:12
die formeln lassen sich sicher im internet/wikipedia finden und zwecks modellcharakter kann man ja von kugelform ausgehen. ich hab in meinem formelbuch mal luftwiderstandskonstanten fuer bestimmte formen gesehen... sollte also nicht so schwer sein.
Christoph
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#8

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 23:14
Ich wollte _keine_ Simulation programmieren, ich denke da eher an Worms als Vorbild, daher auch _nur_ die simple Windberechnung, und die Reichweite ist auch mehr als TTL zu sehen.
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#9

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 23:19
ja dann such nach "ballistischer flugbahn" und du hast was brauchbares
Christoph
  Mit Zitat antworten Zitat
static_cast

Registriert seit: 19. Okt 2003
Ort: Peine
300 Beiträge
 
#10

Re: Flugbahn mit äusseren Einwirkungen berechnen

  Alt 16. Okt 2005, 23:22
Zitat von ripper8472:
ja dann such nach "ballistischer flugbahn" und du hast was brauchbares
Danke das ist natürlich sehr hilfreich...
Daniel M.
"The WM_NULL message performs no operation. An application sends the WM_NULL message if it wants to post a message that the recipient window will ignore."
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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