Betrachten Sie einen Schützen und ein Ziel. Meine Frage ist, ob es eine realistische Annäherung an die Berechnung gibt, mit welcher Wahrscheinlichkeit der Schütze das Ziel trifft.
Wenn man die Waffen- und Schützenfertigkeit vernachlässigt, sollte die Annäherung erster Ordnung wohl sein, dass die Trefferwahrscheinlichkeit proportional zu 1 / r ^ 2 ist, wobei r die Entfernung zum Ziel ist.
Die Motivation für diese Beziehung beruht auf der Idee, dass die am Schützen zentrierte Fläche einer Kugel als r ^ 2 abfällt. Die Wahrscheinlichkeit, ein Ziel zu treffen, sollte also im schlimmsten Fall als 1 / r ^ 2 abnehmen.
Ich habe versucht, eine Beziehung für eine Waffe zu googeln, aber ich habe keine gefunden ...
Kennt jemand mehr Informationen zu diesem Thema? Ist diese Annäherung gültig?
BEARBEITEN:
Mehr zur Frage: Ich denke über ein Taktikspiel nach. Insbesondere möchte ich das Schießen zwischen zwei Einheiten modellieren (also kein FPS-Spiel, der Spieler zielt nicht, er erteilt Befehle). Um dies zu tun, denke ich, dass die Einheit etwas Erfahrung hat, die Waffe eine gewisse Genauigkeit hat und die Umgebung (Nebel, Vegetation usw.) die Gesamtgenauigkeit beeinflusst. Bevor Sie ein schwieriges Modell bearbeiten, sollten Sie am einfachsten alle Faktoren als konstant betrachten und die Genauigkeit nur in Abhängigkeit von der Entfernung.
Die Frage ist, wie diese Genauigkeit von der Entfernung abhängen sollte. Meine erste Vermutung wäre ein 1 / r ^ 2-Zerfall. Aber, wie in den Kommentaren gut erwähnt, sieht dies nach einem sehr schnellen Verfall aus.
quelle
Antworten:
Ihre Annäherung schreibt im Grunde vor, dass Schüsse auf einem Teil der Oberfläche einer Kugel landen, der durch den Winkel bestimmt wird. der Zielbereich innerhalb dieser Oberfläche ist eine Konstante; Die Wahrscheinlichkeitsverteilung ist innerhalb der Oberfläche konstant und an anderer Stelle gleich Null.
Gajet hat bereits eine Reihe guter Gründe angegeben, warum einige dieser Annahmen unverändert bleiben, hält jedoch an demselben Ungenauigkeitsmodell fest: einem begrenzten Winkelfehler. Das Ergebnis fällt immer noch mit r ^ -2 ab, aber mit einer kleinen Konstante.
Angenommen, der Schütze hat eine maximale Streuung von 5 °. Er hat die Chance, zwischen 0 ° und 1 ° Fehler zu schießen, aber die Fläche des Rings zwischen 4 ° und 5 ° ist viel größer als die Fläche des Rings / Kreises zwischen 0 ° und 1 °. Größere Fehler treten mit größerer Wahrscheinlichkeit auf. Erhöhen Sie den Fehler weiter und die Wahrscheinlichkeit sinkt plötzlich auf Null, da wir uns außerhalb der Fünf-Grad-Grenze befinden. Das scheint nicht sehr realistisch.
Eine genauere Darstellung wäre eine guassianische Verteilung des Winkelfehlers, dh :
A(ϕ) = sqrt(a/π) exp(-a ϕ²)
. Die Variable a kann verwendet werden, um die Fähigkeiten des Schützen usw. einzuschließen. Beachten Sie, dass diese Lösung eindimensional ist. Wenn Ihr Ziel im Vergleich zu seiner Breite sehr groß ist, können Sie den vertikalen Fehler ganz weglassen und einfach davon ausgehen, dass der Schuss auf der richtigen Höhe gelandet ist. Alternativ können Sie die Berechnung zweimal ausführen und das Ergebnis multiplizieren, vorausgesetzt, das Ziel ist ungefähr rechteckig.Um von der Wahrscheinlichkeitsfunktion zur tatsächlichen Wahrscheinlichkeit des Treffens eines Ziels zu gelangen, integrieren wir die Funktion A und erhalten eine teure Fehlerfunktion - die eigentlich als Fehlerfunktion bezeichnet wird :
p(ϕ) = erf(ϕ sqrt(a))
. Der Winkel ϕ entspricht dem Winkel zwischen dem Zielpunkt und der Zielkante. In Bezug auf Zielgröße s und Abstand r :p(r) = erf(arctan(s/2r) sqrt(a))
. Diese Funktion ist unten für ein Ziel der Größe 1 und Genauigkeitswerte vona=2
und dargestellta=10
.Beachten Sie, dass im Gegensatz zu einem Abfall von r ^ -2 die Wahrscheinlichkeit sauber unter eins bleibt, egal wie nahe das Ziel ist. Aufgrund der extrem geringen Wahrscheinlichkeit, dass der Fehler mehr als 90 ° beträgt, kann sogar ein Ziel in einer Entfernung von genau Null verfehlt werden.
Wie ich bereits sagte, ist die Fehlerfunktion ziemlich teuer, aber ihr Argument
ϕ sqrt(a)
variiert für ein vernünftiges Shooter-Szenario nicht allzu sehr. Wir können es viel besser machen, indem wir stattdessen einen Teil der Taylor-Reihe bewerten und das Ergebnis begrenzen. Zuerst kartieren wirx = arctan(s/2r) sqrt(a)
, dann bewerten wir :2 x - (2/3) x^3 + (1/5) x^5 ...
. Lassen Sie so viele Begriffe weg oder fügen Sie sie hinzu, wie es für notwendig erachtet wird. Beachten Sie jedoch, dass eine gerade Anzahl von Begriffen bei geringen Entfernungen zu unerwünschtem Verhalten führt. Im Folgenden ist die tatsächliche Fehlerfunktion im Vergleich zu den ersten drei Nicht-Null-Termen der Taylor-Reihe dargestellt.Abschließend ist dies reine Mathematik. Wenn Sie ein paar Sinusfunktionen, zufällige Koeffizienten und Logarithmen eingeben, macht Ihr Spiel möglicherweise genauso viel Spaß.
quelle
Die Wahrscheinlichkeit ist sicherlich eine Funktion von 1 / r ^ 2, fällt aber nicht so schnell ab wie 1 / r ^ 2 selbst. Lassen Sie uns nicht einfach rechnen, und um die Berechnung zu vereinfachen, werde ich zuerst eine 2D-Aufnahme machen, die zu einem 1D-Fehler bei der Aufnahme führt. Das Ziel hat immer die gleiche Breite, zum Beispiel wissen wir, dass das Ziel eine Breite von einem Meter hat. Und wir wissen auch, dass die Waffe beim Schießen das Ziel mit höchstens 5 Grad verfehlen kann. Hier ist eine Abbildung, die die Situation zeigt:
Schauen Sie sich nun diese drei Zustände an. davon ausgehen , dass sie haben
h1
,h2
undh3
Abstand von der Ecke. Basierend auf diesen Werten und dem Winkel können wir berechnen, wie weit der Abstand in diesem Zustand ist. Es wird so einfach berechnet wieh*tan(10/2)*2
(wie in Abbildung 2 gezeigt).Wir wissen das
h/l = cos(theta/2)
undr/l = sin(theta/2)
=>r/h = sin(theta/2)/cos(theta/2) = tan(theta/2)
=>r = h*tan(theta/2)
=>edge length = h*tan(theta/2)*2
Andererseits wissen wir, dass das Ziel selbst 1 Meter breit ist. Solange dieser Wert weniger als einen Meter beträgt, werden wir immer treffen. nach diesem Teil hat es eine Wahrscheinlichkeit,
"target surface"/"hit area"
die gleich ist1 / (h*tan(10/2)*2)
. Beachten Sie, dass wir immer davon ausgehen können, dass sich die gesamte Zieloberfläche im Feuerkegel befindet. Es hat keinen großen Einfluss auf das Gameplay, erleichtert aber die Berechnungen erheblich!Nun zurück zu unserem 3D-Problem mit einem 2D-Ziel. Da es sich um einen Kegel handelt, wird die Kugel beim Passieren des Ziels immer durch einen Kreis mit einem bestimmten Durchmesser geführt. wieder müssen wir seinen Radius berechnen, dann die Fläche dieses Kreises. Wie ich vorher erklärt habe können wir verwenden
r=h*tan(10/2)*2
und daher ist die Oberflächepi*r^2 = h^2*tan^2(10/2)*4 * pi
. Und am Ende wissen wir, dass die Wahrscheinlichkeit ist"target area"/"circle area" = 1 / h^2*tan^2(10/2)*4 * pi
. Wie gesagt, es ist eine Funktion von h ^ 2, aber datan^2(5)
es sehr klein ist, dauert es lange, bis diese Wahrscheinlichkeit sehr gering ist.quelle
Dazu benötigen Sie ein definiertes Konzept der "Ungenauigkeit". Was ist Ungenauigkeit? Wie funktioniert es? Wenn Sie eine KI codieren, die schießt und jedes Mal den genauen Pfad berechnet, ist die Ungenauigkeit offensichtlich über jede Entfernung 0.
Jede schießende KI definiert zuerst den perfekten Weg und fügt dann Zielgenauigkeiten hinzu. Diese Ungenauigkeit wird vollständig von Ihnen definiert, und diese Definition ist erforderlich, bevor eine Wahrscheinlichkeit berechnet werden kann.
quelle