# View source for User talk:Xor/Better MEA formula

- [View source↑]
- [History↑]

## Contents

Thread title | Replies | Last modified |
---|---|---|

Tradiotional MEA proof | 9 | 11:42, 28 September 2017 |

Why is it better? | 2 | 18:34, 19 September 2017 |

I came up with a proof for traiotional MEA which fits on a margin :)

First of all we notice that even the slowest bullet is faster than a bot at full speed. Thus any bullet eventually hits a bot. Now we assume that both the bot and the bullet are spherical points and move in vacuum :), also that there are no walls. We also assume that the bot can reach maximum speed instantaneously.

Let's put the firing bot in the origin and the target somewhere on the right of the x axis (no y displacement). Now we notice that in order to hit the bot, the bullet must have exactly the same y projection of the speed as the target bot.

Vbullet_y = sin(theta)*V_bullet = Vbot_y

Sin V_bullet is fixed in a given situation, the maximum theta (MEA) will be when Vbot_y is maximized, i.e. V_bot_y = V_bot. Substituting it above, we obtain traditional formula

MEA = asin( Vbot/Vbullet )

You do not have permission to edit this page, for the following reasons:

You can view and copy the source of this page.

Return to Thread:User talk:Xor/Better MEA formula/Tradiotional MEA proof/reply.

I really like this proof!

There is another that you can do, with calculus, so find the escape angle that maximises theta. But that one is more complicated =)

Anyway, the less assumptions you made, the better ;) Do not assume constant speed & direction — use integral instead.

Assume the firing robot sits at the origin, and the target robot sits on the positive x-axis.

Since when hit, <math>y_{bullet} = y_{robot}</math>, we have

<math>\int_{0}^{t_1} v_{bullet} sin(\theta) dt = \int_{0}^{t_1} v_{robot} cos(\alpha) dt</math> where <math>\theta</math> is escape angle, <math>\alpha</math> is retreat angle (the heading of the target robot relating to the y-axis, the direction from y-axis to x-axis is positive).

Since <math>v_{bullet}</math> and <math>\theta</math> is constant, we have

<math>v_{bullet} sin(\theta) t_1 = \int_{0}^{t_1} v_{robot} cos(\alpha) dt</math>

assume <math>v_{robot}</math> is always the max — 8, therefore constant, we have

<math>v_{bullet} sin(\theta) t_1 = v_{robot} \int_{0}^{t_1} cos(\alpha) dt</math>

let <math>\alpha_{0}, \alpha_{2}</math> s.t. <math>cos(\alpha_{0}) \leqslant cos(\alpha) \leqslant cos(\alpha_{2})</math>

there exists <math>\alpha_{1}</math>, <math>cos(\alpha_{0}) \leqslant cos(\alpha_{1}) \leqslant cos(\alpha_{2})</math> s.t. <math>cos(\alpha_{1}) t_1 = \int_{0}^{t_1} cos(\alpha) dt</math>

then we have

<math>v_{bullet} sin(\theta) t_1 = v_{robot} cos(\alpha_1) t_1</math>

<math>v_{bullet} sin(\theta) = v_{robot} cos(\alpha_1)</math>

<math>sin(\theta) = \frac{v_{robot}}{v_{bullet} } cos(\alpha_1)</math>

then we have

<math>\theta_{max} = asin(\frac{v_{robot}}{v_{bullet} })</math>, which can be reached when <math>\alpha_1</math> = 0.

since <math>cos(\alpha) \leqslant cos(0) = 1</math>, <math>\alpha</math> must be always 0, which proved that retreat angle must be always 0.

And we proved that <math>\theta_{max} = asin(\frac{v_{robot}}{v_{bullet} })</math> is true.

I'm still sure that getting slightly away is better both with orbital and traditional one.

Better for what? It does not increase your MEA. Though it decreases the target angular size, so it reduces the probability to be hit. Calculating probability to be hit is yet another beast, which we probably should attempt to solve analytically.

There is another issue, the traditional MEA is good only for a single isolated wave, the real question is how to increase the MEA in a stream of constantly fired bullets.

For wave surfers, I think my work is useful — User:Xor/Better_MEA_formula, as the movement is constant with time, it is naturally suitable for multiple waves ;)

The problem with your formula is that it does not match traditional MEA in the border cases.

The second problem that I not fully understand it. It looks like you are integrating angular velocity to an undefined time t.

it matches orbital MEA in border cases though, as always moving perpendicular is impossible, so you have to fallback to orbital ;)

I'm integrating angular velocity from fire time to hit time, which is obviously the escape angle ;) sorry for not saying that clearly in advance, the article is still not finished ;)

It increases also. If the formula below is correct, it is true.

asin(sin(a) / (v / 8 - cos(a) / 2))

You can try brute forcing.

Is it more precise? or faster to calculate according to this approximation?

Also the bullet speed can go as low as 11, so discrepancy will be even higher at lower values.

~~By "better", I mean the traditional MEA is wrong. However I can't prove my formula is correct either.
~~

~~Anyway, it is better, because it is always greater than the traditional one (while conforming to the Game Physics). Therefore closer to the theoretical MEA.
~~

It turns out that I'm wrong. Anyway the updated calculation is useful for surfers — especially when you need to retreat and there is more than one wave.

- Don't worry about the formula returning small values. My brute force MEA returns a lower value than asin which is completely wrong but higher than the full orbit MEA 8 / Vb.
- Traditional mea is wrong because the wave can hit when going directly to the target point which is calculated by MEA.