# 开源项目:基于 AI+算法的飞盘奇门遁甲排盘系统
> 作者:panming | 传统文化 × 现代技术爱好者
---
## 一、项目背景
奇门遁甲作为中国传统预测术之一,历史悠久。目前市面上99%的奇门排盘软件都是**转盘模式**,而**飞盘模式**——这个九星、九门、九神全动的流派——却因资料稀缺、算法复杂,几乎无人实现。
我在学习过程中翻遍《遁甲演义》《御定奇门宝鉴》等古籍,以及龙隐、元亨等论坛的老帖,发现飞盘的算法细节散落各处,没有完整的开源实现。于是,我决定自己做一个。
---
## 二、项目介绍
- **项目名称**:飞盘奇门排盘
这是一个纯前端实现的奇门遁甲排盘系统,支持飞盘模式、真太阳时自动计算、AI智能分析,并且**完全开源**。
---
## 三、核心功能
### 3.1 飞盘模式(阳顺阴逆)
飞盘与转盘的核心区别:
| 模式 | 地盘 | 天盘/人盘/神盘 | 复杂度 |
|------|------|--------------|--------|
| 转盘 | 固定 | 转动 | 低 |
| 飞盘 | 全动 | 全动(阳顺阴逆) | 高 |
实现严格按照《遁甲演义》的**拆补无闰法**,确保算法准确性。
### 3.2 真太阳时自动计算
奇门遁甲要求使用**真太阳时**,而非北京时间。
系统根据用户输入的出生地经纬度,自动计算:
- 经度时差校正(每度4分钟)
- 时区处理(东八区 vs 地方时)
- 历史时区变更(民国时期等)
用户只需输入北京时间,系统自动校正为真太阳时,排盘更精准。
### 3.3 AI 分析引擎
不是简单的 prompt 套壳,而是**规则引擎 + 大模型**的两阶段设计:
```
用户提问
↓
状态机判断格局(击刑、入墓、值符值使…)
↓
大模型自然语言解读
↓
多轮对话追问
```
**规则引擎部分**:
- 击刑判断(庚+戊、戊+癸等)
- 入墓判断(丙墓戌、丁墓丑等)
- 值符值使定位
- 吉格凶格识别
**大模型部分**:
- 基于格局信息生成自然语言解读
- 支持多轮对话,上下文记忆
- 可追问,AI 会反问以聚焦问题
### 3.4 多系统联合
- 奇门遁甲排盘(飞盘模式)
- 八字(四柱)排盘
- 奇门 + 八字**联合分析**
### 3.5 其他特性
- 年命天干自动标注
- 响应式设计,手机、电脑都能用
- 浏览器端计算,隐私安全(数据不传服务器)
- 纯静态页面,可直接部署 GitHub Pages
---
## 四、技术实现
### 4.1 算法部分(核心难点)
飞盘排盘的难点在于古籍资料的不完备性。我对比了多个版本,整理出以下算法流程:
```javascript
// 核心排盘逻辑
function calculateQimen(birthTime, location) {
// 1. 计算节气(拆补无闰法)
const solarTerm = calculateSolarTerm(birthTime);
// 2. 确定阴阳遁
const isYang = isYangDun(solarTerm);
// 3. 排九星、九门、九神(阳顺阴逆)
const stars = arrangeStars(isYang);
const doors = arrangeDoors(isYang);
const gods = arrangeGods(isYang);
// 4. 推导干支
const ganZhi = calculateGanZhi(birthTime);
// 5. 真太阳时校正
const trueSolarTime = adjustToTrueSolarTime(birthTime, location);
return { stars, doors, gods, ganZhi, trueSolarTime };
}
```
**难点总结**:
- 古籍《遁甲演义》语焉不详,需要自己补全逻辑
- 现代资料互相矛盾,需交叉验证
- 节气计算涉及黄道角度,精度要求高
- 真太阳时需处理历史时区变更
### 4.2 真太阳时计算
```python
def true_solar_time(beijing_time, longitude):
# 经度时差:每度4分钟
time_diff = (longitude - 120) * 4
# 真太阳时 = 北京时间 + 经度时差(分钟)
true_time = beijing_time + timedelta(minutes=time_diff)
return true_time
```
还需考虑:
- 夏令时(历史上有过)
- 民国时期不同地区的时区差异
### 4.3 AI 分析:状态机 + 大模型
**状态机规则示例**:
```javascript
const rules = {
// 击刑
jiXing: {
'庚+戊': true, '戊+癸': true,
'壬+戊': true, '辛+戊': true, '乙+戊': true
},
// 入墓
ruMu: {
'丙': '戌', '丁': '丑', '己': '戌',
'庚': '未', '辛': '辰', '壬': '辰', '癸': '未'
}
};
```
**大模型调用**:
```javascript
const prompt = `
排盘信息:${panInfo}
用户问题:${question}
请根据奇门遁甲规则,分析这个问题。
`;
const response = await callLLM(prompt);
```
### 4.4 前端架构
- **技术栈**:HTML + CSS + JavaScript(无框架)
- **计算位置**:浏览器端完成,减轻服务器压力
- **部署**:纯静态页面,可部署 GitHub Pages / Vercel
- **响应式**:支持手机、平板、电脑
---
---
## 六、为什么开源?
1. **资料稀缺**:飞盘算法散落在古籍和论坛里,希望开源后能帮到有同样兴趣的人
2. **技术探索**:传统术数有大量规则化知识,适合做知识增强系统
3. **社区共建**:一个人力量有限,欢迎 Issue / PR 共同完善
---
## 七、在线体验 & 开源地址
🔗 **在线体验(免安装)**:https://panma.site
💻 **开源地址**:https://github.com/panming-dev/mingfa-paipan
---
## 八、后续计划
1. 更多流派支持(阴盘奇门、茅山派飞盘等)
2. 历史案例库(收集经典案例,供学习参考)
3. 更深入的分析维度(财官桃花、流年运程、择日择时)
4. 移动端 App(React Native / Flutter,离线可用)
---
## 九、常见问题(FAQ)
**Q1:飞盘和转盘有什么区别?**
A:转盘地盘不动,天盘、人盘、神盘转动;飞盘九星、九门、九神全部动态,阳顺阴逆,更灵活但更复杂。
**Q2:真太阳时有必要吗?**
A:如果出生地不在东八区中央经线(120°E),真太阳时与北京时间有差异,排盘结果会不同。追求精准建议用真太阳时。
**Q3:AI 分析准确吗?**
A:AI 基于规则判断格局,解读部分基于大模型,**仅供参考**,不承诺100%准确。重要决策请线下找专业命理师。
**Q4:可以离线使用吗?**
A:目前是在线版,后续考虑出离线版(PWA 或 App)。
**Q5:支持哪些出生时间格式?**
A:公历时间(年月日时),支持 1900-2100 年。
---
## 十、结语
传统术数 + 现代技术,让古老智慧用现代方式传承。
欢迎 Star ⭐,欢迎 PR,欢迎讨论。
---
**标签**:`奇门遁甲` `飞盘奇门` `开源项目` `AI` `传统文化` `术数` `命理` `JavaScript` `前端`
2528

被折叠的 条评论
为什么被折叠?



