BlaBlubb.
Das Problem ist wenn ich mich nicht schwer täusche weniger dass man es nicht analytisch lösen könnte, als dass du entweder die Anfangs-Geschwindigkeit oder die Flugdauer des Geschosses frei (mit Einschränkungen, s.u.) wählen kannt.
Da es aber in der Realität vermutlich eine Obergrenze für die Geschwindigkeit gibt, hat man ein Optimierungsproblem. (Wähle die Anfangsgeschwindigkeit so, dass die Flugdauer minimal wird.) Das ist aber insofern nicht weiter schlimm, als das näherungsweise gilt, je schneller das Geschoss fliegt, desto früher ist es da.
Sei
§v_0§ der anfängliche Bewegungsvektor bzw.
§|v_0|§ die Anfangsgeschwindigkeit. Ich gehe mal modellhaft davon aus, dass es möglich ist für dein Geschoss einen Bereich
§[a,b]§ für gültige
§|v_0|§ festzulegen. Weiterhin soll es Gründe geben nicht immer mit Vollkraft b zu schießen (z.B. Kosten, Erhitzung der Waffe, whatever). Das ist ein wenig schwammig, aber durch a=b lässt es sich natürlich leicht beheben, falls du das nicht willst.
Modulo Rechenfehler, die du bitte falls vorhanden selbst korrigierst, gilt:
Seien
§ p_0, p§ Anfangsposition und der anvisierte Punkt (in dieser Reihenfolge) wobei
§y_{p_0}, y_{p}§ jeweils die 2. Komponente der letzteren beiden bezeichnen
und
§g=\begin{pmatrix}0\\-9.81\\0\end{pmatrix}§
der Vektor der Schwerkraft ist (beides davon ausgehend, dass "y" die Hoch-Achse ist, ggf. anpassen)
dann ist
§t^4 + \frac{4(9.81(y_p-y_{p_0})-|v|^2)}{9.81^2} t^2 + \frac{4|p-p_0|^2}{9.81^2} = 0§
Es stellt sich heraus dass die quadratische Gleichung nur dann reelle Lösungen hat, wenn
§|v_0|§ groß genug war um die Erdanziehung lange genug zu überwinden um p überhaupt zu erreichen. Die Mindestgeschwindigkeit
§|v_0|_{\min}§ ist gegeben durch:
§|v_0|^4 - 2 \cdot 9.81(y_p-y_{p_0}) |v_0|^2 + 9.81^2((y_p-y_{p_0})^2-|p-p_0|^2)=0§
Vorgeschlagenes Vorgehen:
- §|v_0|_{\min}§ ausrechnen
- Wenn §|v_0|_{\min}>b§ aufgeben, sonst §|v_0|=\min(b,\max(a, 1.1\cdot|v_0|_{\min}))§
Die 1.1 ist die größte "Sünde" in der ganzen Betrachtung. Wenn §a \neq b§ fänd ich es halt langweilig immer nur die Minimalgeschwindigkeit zu verwenden. 10% Spaßfaktor oben drauf sollten drin sein. Siehe auch Beschreibung von a und b.
- t ausrechnen
- §v_0§ ausrechnen
- Feuern.