资讯中心

指定到达时间后抛物线怎样越过障碍高度:独立算例11

2026-11-13

游戏中的抛射轨迹可以先规定到达目标所需时间,再反求初速度。这样落点和时刻都是明确的,不过中途是否越过障碍仍须单独检查,不能只看最终落在目标上。

规则与边界

水平位置从零到距离D,高度从y0到y1,总时间T,向下加速度大小g。水平速度为D除T,竖直初速度为(y1减y0加g乘T平方除二)除T。任意时刻高度为y0加竖直初速度乘t,再减g乘t平方除二。

本例记录

参数{'distance': 31, 'time': 4, 'g': 3, 'start_y': 4, 'target_y': 9, 'obstacles': [[3, 4], [9, 13], [11, 7], [15, 8], [16, 9], [17, 16]]}。初速度水平31/4、竖直29/4。

障碍水平位置、高度 | 到达时间 | 轨迹高度 | 高度差 | 严格越过 [3, 4] | 12/31 | 6325/961 | 2481/961 | True [9, 13] | 36/31 | 9991/961 | -2502/961 | False [11, 7] | 44/31 | 10829/961 | 4102/961 | True [15, 8] | 60/31 | 11929/961 | 4241/961 | True [16, 9] | 64/31 | 12084/961 | 3435/961 | True [17, 16] | 68/31 | 12191/961 | -3185/961 | False 九个均匀时间样本:['4', '29/4', '39/4', '23/2', '25/2', '51/4', '49/4', '11', '9'] 区间最高点时刻29/12,高度1225/96。

表中编号只标记本例对象,不表示排名或另一组数据中的身份。先确认输入单位与边界约定,再逐步核对中间值。零、空结果和不存在是不同状态,不能因为显示相近就互相替代;分数用精确形式保留,便于重新演算。

复核方法

障碍位于水平距离x时,到达它的时刻是x乘T除D。把这个时刻代回高度,严格大于障碍高度才标为越过,等于则算接触。检查落点高度与给定y1一致,再找竖直速度变为零时的最高点。

总时间变长通常会改变所需竖直速度和中途高度,并不只是把同一条轨迹播放慢一点。练习中可以比较几个障碍,保留各自的到达时刻和高度差。实际碰撞若涉及有宽度的平台,应检查整个进入范围,单个水平截面还不足以保证通过。

能说明什么

本例物体视为质点,没有空气阻力、风、碰撞体宽度或飞行途中控制。最高点只在零到T的区间内取值,若轨迹一直上升或下降,区间最高位置可能就是某个端点。

这份记录用于理解明确规则下的游戏机制。改变输入后,结果也应随之重新计算;若操作规则不同,应先把新规则写清再比较。可以从一两个步骤手算开始,找出第一处差异,而不是只对照最后一个数值。全部中间记录都属于当前案例,不能直接当成其他场景的固定答案。