翻译自https://github.com/esi/esi-docs/blob/master/docs/useful_formulae.md
跃迁落地点
跃迁落地点,指的是你的舰船在跃迁至一个物体时将要在太空中退出跃迁通道的位置。
许多外部因素可能会中止跃迁,例如跃迁扰断力场、电容量不足、跃迁抖动等等。
这些公式不能解决这些问题,它仅仅计算在理想条件下的数值。
普通目标
普通目标是不属于以下描述的任何其他类别的任何目标。
使用三维向量 $ p_d $ 和 $ p_s $ 分别表示目标的位置和跃迁起点。 $ \vec{v} $ 是一个从 $ p_s $ 到 $ p_d $ 的方向向量。使用 $ r $ 表示对象的半径。
目标的跃迁落地点是向量 $ p_s + \vec{v} - r\hat{v} $ 。
大目标
大目标是除行星外,半径超过90千米(直径180千米)的任何目标。
使用 $ x $ , $ y $ 和 $ z $ 表示目标的坐标。使用 $ r $ 表示目标的半径。
目标的跃迁落地点是向量 $ \left(x + (r + 5000000)\cos{r} \, y + 1.3r - 7500 \, z - (r + 5000000)\sin{r} \ \right) $ 。
行星
行星的跃迁落地点由行星的ID,位置和半径确定。
使用 $ x $ , $ y $ 和 $ z $ 表示行星的坐标。使用 $ r $ 表示行星的半径。
行星的跃迁落地点是向量 $ \left(x + d \sin{\theta}, y + \frac{1}{2} r \sin{j}, z - d \cos{\theta}\right) $ ,其中:
$$
d = r(s + 1) + 1000000
$$
$$
\theta = \sin^{-1}\left(\frac{x}{|x|} \cdot \frac{z}{\sqrt{x^2 + z^2}}\right) + j
$$
$$
s|{0.5 \leq s \leq 10.5} = 20\left(\frac{1}{40}\left(10\log{10}\left(\frac{r}{10^6}\right) - 39\right)\right)^{20} + \frac{1}{2}
$$
现在, $ j $ 是一朵特别的雪花。它的值用Python表示是 (random.Random(planetID).random() - 1.0) / 3.0
。
示例实现
import math
import random
def warpin(id, x, y, z, r):
j = (random.Random(id).random() - 1.0) / 3.0
t = math.asin(x/abs(x) * (z/math.sqrt(x**2 + z**2))) + j
s = 20.0 * (1.0/40.0 * (10 * math.log10(r/10**6) - 39))**20.0 + 1.0/2.0
s = max(0.5, min(s, 10.5))
d = r*(s + 1) + 1000000
return (x + d * math.sin(t), y + 1.0/2.0 * r * math.sin(j), z - d * math.cos(t))
技能点
每级技能点需求
每级技能点需求取决于它的技能分级。
$$
y_{skillpoints} = 2^{2.5(x_{skilllevel}-1)} \cdot 250 \cdot r_{skillrank}
$$
一般技能分级的技能点需求
分级 | 等级 1 | 等级 2 | 等级 3 | 等级 4 | 等级 5 |
---|---|---|---|---|---|
1 | 250 | 1,414 | 8,000 | 45,254 | 256,000 |
2 | 500 | 2,828 | 16,000 | 90,509 | 512,000 |
3 | 750 | 4,242 | 24,000 | 135,764 | 768,000 |
4 | 1,000 | 5,656 | 32,000 | 181,019 | 1,024,000 |
5 | 1,250 | 7,071 | 40,000 | 226,274 | 1,280,000 |
6 | 1,500 | 8,485 | 48,000 | 271,529 | 1,536,000 |
7 | 1,750 | 9,899 | 56,000 | 316,783 | 1,792,000 |
8 | 2,000 | 11,313 | 64,000 | 362,038 | 2,048,000 |
9 | 2,250 | 12,727 | 72,000 | 407,293 | 2,304,000 |
10 | 2,500 | 14,142 | 80,000 | 452,548 | 2,560,000 |
11 | 2,750 | 15,556 | 88,000 | 497,803 | 2,816,000 |
12 | 3,000 | 16,970 | 96,000 | 543,058 | 3,072,000 |
13 | 3,250 | 18,384 | 104,000 | 588,312 | 3,328,000 |
14 | 3,500 | 19,798 | 112,000 | 633,567 | 3,584,000 |
15 | 3,750 | 21,213 | 120,000 | 678,822 | 3,840,000 |
16 | 4,000 | 22,627 | 128,000 | 724,077 | 4,096,000 |
每分钟技能点
每分钟生成的技能点的数量取决于该技能的主要属性 $ (a_{primary}) $ 和次要属性 $ (a_{secondary}) $ 。
$$
y_{skillpointsPerMinute} = a_{primary} + {a_{secondary} \over 2}
$$
战斗
目标锁定时间
目标锁定时间 $ t_{targetlock} $ 取决于舰船的扫描分辨率 $ s $ 和目标的信号半径 $ r $ 。
$$
t_{targetlock} = {40000 \over s \cdot asinh(r)^2}
$$
转向时间
舰船朝向时间 $ t_{align} $ 取决于舰船的惯性调整值 $ i $ 和舰船的质量 $ m $ 。
$$
t_{align} = { ln(2) \cdot i \cdot m \over 500000 }
$$