← 弹幕排布:让滚动评论互不重叠 / 变速归一:追及不等式 待审核 3 / 4
normalized · 追及不等式

变速归一:追及不等式

很多产品希望每条弹幕的停留时长一致(记作 T):无论长短,都用同样的时间飞过屏幕。这要求速度随宽度变化——弹幕走过的总路程是 W + w(W 为屏宽),故 v = (W + w) / T,越宽的弹幕飞得越快。代价是:同轨道里,后发的宽弹幕可能追上前面的窄弹幕。判定不再是「进场看一眼」,而要解一条追及不等式,求出最小安全发射间隔 Δ

拖动前 / 后两条弹幕的宽度与发射间隔 Δ。下方单轨屏循环演示这两条弹幕:间隔过小时,后发的弹幕会追尾前一条(重叠标红);把 Δ 调到 Δ_min 及以上即恰好不撞。

1 · 不等式怎么来的

令屏宽 W,停留时长 T,则 v = (W+w)/T。前一条(宽 w前)在 t=0 从右缘进入,后一条(宽 w后)在 t=Δ 进入,二者同轨。要求二者在全程不重叠,推出两条约束:

其一 · 进场不撞:后一条进入时,前一条的右端须已进屏,得 Δw/v=Tw/(W+w)Δ \ge w前 / v前 = T\cdot w前/(W+w前)

其二 · 不被追上:若后一条更宽(更快),即便进场不撞也可能在前一条离场前追上。令二者在前一条飞出左缘前始终保持间距,化简得 ΔTw/(W+w)Δ \ge T\cdot w后/(W+w后)

两条取较紧者,得最小安全发射间隔 Δ_min = T · max( w前/(W+w前), w后/(W+w后) )。注意 w/(W+w) 随 w 单调增,故谁更宽,谁决定 Δ_min:前一条更宽 → 进场约束吃紧;后一条更宽 → 追及约束吃紧。等速是它的特例(令 w前 = w后,两条约束合一,退化为入场间距判定)。

这对发射调度的意义:已知 T 与各弹幕宽度,就能算出每条轨道相邻两条弹幕的最小时间间隔,据此限流 / 错峰地把弹幕分派到各轨道,既不追尾又尽量密。这也是变速弹幕引擎排期的数学内核。

2 · 下一步

无论等速还是变速,只要瞬时弹幕量超过轨道容纳能力,总会出现无轨可放的时刻。那时如何取舍,见选轨与降级