# artillerycomputer **Repository Path**: lkperson/artillerycomputer ## Basic Information - **Project Name**: artillerycomputer - **Description**: 一个简单的火炮电脑程序 App - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-07 - **Last Updated**: 2026-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Artillery Computer 火炮弹道计算应用 - 一款专为炮兵设计的 Android 火炮射击诸元计算工具。 ## 功能特性 - **坐标计算**:支持网格坐标与精坐标输入,满足战场精确定位需求 - **距离计算**:基于极坐标(距离、方位角、海拔)的快速距离解算 - **弹道解算**:根据火炮参数和目标位置自动计算射击诸元(高低角、方位角、飞行时间) - **火炮管理**:支持添加、编辑和删除不同口径的火炮及其弹药参数 - **修正功能**:支持射击后根据实际落点进行修正计算 - **数据导入导出**:支持火炮配置的导入导出功能 ## 技术架构 - **开发语言**:Kotlin - **UI 框架**:Jetpack Compose + Material 3 - **架构模式**:MVVM(Model-View-ViewModel) - **核心算法**:弹道方程求解(考虑重力加速度 G) ### 数据模型 - **Coordinate** - 坐标(网格坐标 + 精坐标 + 海拔) - **PolarCoordinate** - 极坐标(距离、方位角、海拔) - **Artillery** - 火炮(名称、俯仰角范围、弹药列表) - **Charge** - 装药(名称、初速、最小射程、最大射程) - **Ammo** - 弹药(名称、装药模式列表) - **Solution** - 计算解(射击模式、高低角、方位角、飞行时间) ### 核心计算 弹道模块 (`Ballistics`) 实现: - 极坐标转网格坐标转换 - 多解弹道求解(不同装药模式下的最优解) - 实际射角修正计算 - 角度换算(度到密位6000/6400) ## 项目结构 ``` app/src/main/java/com/grandesty/artillerycomputer/ ├── MainActivity.kt # 应用入口 ├── engine/ │ └── Ballistics.kt # 弹道计算核心引擎 ├── model/ │ ├── Artillery.kt # 火炮、弹药、装药数据模型 │ ├── ArtilleryDefines.kt # 内置火炮定义数据 │ ├── Coordinate.kt # 坐标与极坐标模型 │ └── Solution.kt # 计算解模型 ├── ui/ │ ├── component/ # UI 组件 │ │ ├── CoordinateInput.kt # 坐标输入组件 │ │ └── SolutionTable.kt # 解显示表格组件 │ └── screen/ # 页面 │ ├── CalculationScreen.kt # 计算主页面 │ ├── ManagementScreen.kt # 火炮管理页面 │ └── EditingScreen.kt # 火炮编辑页面 └── viewmodel/ └── ArtilleryViewModel.kt # 业务逻辑 ViewModel ``` ## 构建要求 - **Android Gradle Plugin**: 8.x - **Kotlin**: 1.9.x - **Target SDK**: 34 - **Min SDK**: 24 ## 使用说明 ### 基本操作流程 1. **选择火炮**:在管理页面添加或选择已配置的火炮 2. **输入坐标**:输入观察所坐标和目标坐标(或使用极坐标方式) 3. **计算解**:系统自动计算符合条件的所有射击解 4. **修正射击**:射击后输入实际落点坐标,系统自动计算修正量 ### 坐标系统 - **方位角**:0-360°,正北为 0°,顺时针方向增加 - **距离单位**:百米(hm) - **海拔单位**:米(m) - **角度显示**:支持角度制、6000密位、6400密位三种显示方式 ### 计算类型 - **坐标计算**:根据观察所和目标坐标计算射击诸元 - **距离计算**:根据极坐标(距离、方位角)计算射击诸元 ## 许可证 MIT License --- 如需更多信息,请参考项目源码或参与贡献。