public class M416BulletTracking {
    private static final float GRAVITY = 9.81f; // 重力加速度
    private static final int MAX_TRACKING_DISTANCE = 1000; // 最大追踪距离，单位：米

    public static void main(String[] args) {
        float bulletSpeed = 1000f; // 子弹速度，单位：米/秒
        float aimHeight = 1.6f; // 瞄准高度，单位：米
        float startTime = 0f; // 开始时间，单位：秒
        float timeElapsed = 0f; // 时间流逝，单位：秒

        while (timeElapsed < MAX_TRACKING_DISTANCE / bulletSpeed) {
            float distance = bulletSpeed * timeElapsed; // 计算子弹飞行距离
            float newTime = Math.min(timeElapsed + 0.1f, aimHeight / GRAVITY); // 计算下一时间点
            float horizontalDistance = distance * (newTime - timeElapsed); // 计算水平距离

            System.out.printf("时间：%.2f秒，距离：%.2f米，水平距离：%.2f米\n", timeElapsed + 0.1f, distance, horizontalDistance);

            timeElapsed += newTime - timeElapsed; // 更新时间流逝
        }
    }
}