Considérez un tireur et une cible. Ma question est de savoir s'il existe une approximation réaliste du calcul avec quelle probabilité le tireur atteint la cible.
En négligeant la compétence d'arme et de tir, je suppose que l'approximation de premier ordre devrait être que la probabilité de toucher serait proportionnelle à 1 / r ^ 2, où r est la distance jusqu'à la cible.
La motivation de cette relation vient de l'idée que l'aire d'une sphère centrée sur le tireur se désintègre en r ^ 2. Ainsi, la probabilité de toucher un objectif devrait, dans le pire des cas, se dégrader en 1 / r ^ 2.
J'ai essayé Google pour trouver une relation avec n'importe quelle arme, mais je n'en ai trouvé aucune ...
Quelqu'un connaît-il plus d'informations sur ce sujet? Cette approximation est-elle valable?
ÉDITER:
Plus sur la question: j'envisage un jeu de tactique. En particulier, je voudrais modéliser le tir entre deux unités (donc, pas un jeu FPS, le joueur ne vise pas, il donne des ordres). Pour ce faire, je considère que l'unité a une certaine expérience, l'arme a une certaine précision et l'environnement (brumeux, végétation, etc.) affecte la précision globale. Avant de travailler sur un modèle difficile, le modèle le plus simple à tester considère tous les facteurs constants et la précision uniquement en fonction de la distance.
La question est de savoir comment cette précision doit dépendre de la distance. Ma première supposition serait une décroissance de 1 / r ^ 2. Mais, a bien mentionné dans les commentaires, cela ressemble à une décroissance très rapide.
la source
Réponses:
Votre approximation dicte essentiellement que les tirs atterrissent sur une partie de la surface d'une sphère, déterminée par l'angle; la zone cible à l'intérieur de cette surface est une constante; la distribution de probabilité est constante à l'intérieur de la surface et nulle ailleurs.
Gajet a déjà donné un certain nombre de bonnes raisons pour lesquelles certaines de ces hypothèses tombent à plat, mais conserve le même modèle d'inexactitude: une erreur d'angle limitée. Le résultat tombe toujours avec r ^ -2, mais avec une petite constante.
Supposons que le tireur ait une diffusion maximale de 5 °. Il a une chance de tirer entre une erreur de 0 ° et 1 °, mais la zone de l'anneau entre 4 ° et 5 ° est beaucoup plus grande que la zone de l'anneau / cercle entre 0 ° et 1 °. De plus grandes erreurs ont une plus grande probabilité de se produire. Augmentez davantage l'erreur et la probabilité tombe soudainement à zéro, car nous sommes hors de la limite de cinq degrés. Cela ne semble pas très réaliste.
Une représentation plus précise serait d'avoir une distribution gaussienne de l' erreur angulaire, à savoir:
A(ϕ) = sqrt(a/π) exp(-a ϕ²)
. La variable a peut être utilisée pour inclure la compétence du tireur, etc. Notez que cette solution est unidimensionnelle. Si votre cible est très haute par rapport à sa largeur, vous pouvez omettre complètement l'erreur verticale et supposer simplement que le tir a atterri à la bonne altitude. Vous pouvez également exécuter le calcul deux fois et multiplier le résultat, en supposant que la cible est à peu près rectangulaire.Pour obtenir de la fonction de probabilité de la probabilité réelle de frapper une cible, nous intégrons la fonction A et se retrouve avec une fonction d'erreur coûteuse - qui est en fait appelée la fonction d'erreur:
p(ϕ) = erf(ϕ sqrt(a))
. L'angle ϕ est égal à l'angle entre le point ciblé et le bord de la cible. En termes de taille de la cible et de la distance r:p(r) = erf(arctan(s/2r) sqrt(a))
. Cette fonction est tracée ci-dessous pour une cible de taille 1 et des valeurs de précision dea=2
eta=10
.Notez que contrairement à une baisse de r ^ -2, la probabilité reste nettement inférieure à un, quelle que soit la proximité de la cible. En fait, même une cible à une distance exactement nulle peut être manquée, en raison de la très faible probabilité que l'erreur soit supérieure à 90 °.
Comme je l'ai déjà dit, la fonction d'erreur est assez chère, mais son argument
ϕ sqrt(a)
ne varie pas beaucoup pour tout scénario de tireur sensé. Nous pouvons faire beaucoup mieux en évaluant une partie de la série Taylor à la place et en plafonnant le résultat. Tout d' abord, nous dressons la cartex = arctan(s/2r) sqrt(a)
, puis évaluer:2 x - (2/3) x^3 + (1/5) x^5 ...
. Omettez ou ajoutez autant de termes que vous le jugez nécessaire, mais gardez à l'esprit qu'un nombre pair de termes entraînera un comportement indésirable sur de faibles distances. La fonction d'erreur réelle est représentée ci-dessous, par rapport aux trois premiers termes non nuls de sa série Taylor.Pour terminer, il s'agit uniquement de mathématiques. Ajoutez quelques fonctions sinusoïdales, des coefficients aléatoires et des logarithmes et votre jeu pourrait être tout aussi amusant.
la source
La probabilité est certainement fonction de 1 / r ^ 2 mais ne diminue pas aussi rapidement que 1 / r ^ 2 lui-même. Ne faisons pas un calcul simple, et pour la facilité de calcul, je vais d'abord opter pour une prise de vue 2D qui entraînera une erreur 1D dans la prise de vue. La cible a toujours la même largeur, par exemple, nous savons que la cible a une largeur d'un mètre. Et nous savons également que pendant le tir, l'arme peut manquer la cible avec au plus 5 degrés. voici une figure montrant la situation:
Regardez maintenant ces trois états. supposons qu'ils ont
h1
,h2
et lah3
distance du coin. Sur la base de ces valeurs et de l'angle, nous pouvons calculer la distance à cet état. Il est calculé aussi simplement queh*tan(10/2)*2
(comme le montre la figure 2).Nous le savons
h/l = cos(theta/2)
etr/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
D'un autre côté, nous savons que la cible elle-même mesure 1 mètre de large, donc tant que cette valeur est inférieure à un mètre, nous atteindrons toujours. après cette partie, sa probabilité
"target surface"/"hit area"
est égale à1 / (h*tan(10/2)*2)
. Notez que nous pouvons toujours supposer que toute la surface cible est à l'intérieur d'un cône de feu. cela n'affecte pas vraiment le jeu mais facilite beaucoup les calculs!revenons maintenant à notre problème 3D avec une cible 2D. Puisque c'est un cône dont nous parlons, la balle passera toujours par un cercle d'un certain diamètre lors du passage de la cible. encore une fois, nous devons calculer son rayon, puis l'aire de ce cercle. Comme je l'ai expliqué précédemment, nous pouvons l'utiliser
r=h*tan(10/2)*2
et donc la surface estpi*r^2 = h^2*tan^2(10/2)*4 * pi
. Et à la fin, nous savons que la probabilité est"target area"/"circle area" = 1 / h^2*tan^2(10/2)*4 * pi
. comme je l'ai dit, c'est une fonction de h ^ 2 mais commetan^2(5)
c'est très petit, il faut beaucoup de temps avant que cette probabilité ne tombe très bas.la source
Pour cela, vous avez besoin d'un concept défini d '"inexactitude". Qu'est-ce que l'inexactitude? Comment ça marche? Si vous codez une IA qui tire et calcule le chemin exact à chaque fois, alors évidemment l'inexactitude est de 0 sur n'importe quelle distance.
Toute IA tirante définit d'abord le chemin parfait, puis ajoute une imprécision de visée. Cette imprécision est entièrement définie par vous et cette définition est nécessaire avant de pouvoir calculer une probabilité.
la source