## 🚀 概述
**CubeEye** 是一款专为解决 3x3 魔方而设计的高级 Android 应用。它利用计算机视觉技术扫描实体魔方,并提供交互式 3D 动画指导,帮助用户使用接近最优的步法进行还原。
## ✨ 主要功能
### 📷 智能扫描系统
* **实时颜色检测:** 通过自定义的 `ColorAnalyzer`,利用摄像头自动识别魔方各面的颜色。
* **引导式扫描:** 直观的 UI 界面引导用户正确扫描所有 6 个面。
* **验证逻辑:** 内置的 `CubeValidator` 确保扫描结果在实际操作中可还原。
* **手动校正:** 内置 `ColorPickerDialog`,允许用户在光照条件影响自动检测时手动调整颜色。
### 🧩 智能解算器
* **Kociemba 算法:** 集成了著名的两阶段算法(通过 *min2phase* 库),能够找到接近最优解,通常只需不到 20 步即可完成。
* **快速本地计算:** 无需网络连接,即可在设备上直接在几秒钟内解决复杂的打乱问题。
### 🎥 交互式 3D 指南
* **3D 可视化:** 提供完全交互式的 3D 渲染(`Cube3DView`),能够精确模拟真实魔方的状态。
* **分步动画:** 用户可以按照自己的节奏播放、暂停和拖动进度条来查看解算步骤。
## 🛠 技术亮点
* **现代 Android 技术栈:** 完全使用 Kotlin 和 Jetpack Compose(Material 3)构建。
* **稳健的架构:** 遵循整洁架构原则,采用 MVVM 模式,使用 Hilt 进行依赖注入,并使用协程进行异步操作。
* **CameraX:** 实现了稳定高效的相机基础架构,用于实时预览和图像分析。
* **SceneView:** 利用 SceneView 库进行高性能 3D 渲染。
## 🐛 已知问题 / 待办事项
* 优化颜色检测阈值,以更好地应对极端光照条件。
* 自动集成“min2phase”库(目前以手动源文件的形式包含)。