mingpan 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -47
- package/dist/core/bazi/BaziCore.d.ts +7 -1
- package/dist/core/bazi/BaziCore.d.ts.map +1 -1
- package/dist/core/bazi/BaziCore.js +37 -11
- package/dist/core/bazi/BaziCore.js.map +1 -1
- package/dist/core/bazi/types.d.ts +4 -0
- package/dist/core/bazi/types.d.ts.map +1 -1
- package/dist/core/qimen/FlyingRule.d.ts +60 -0
- package/dist/core/qimen/FlyingRule.d.ts.map +1 -0
- package/dist/core/qimen/FlyingRule.js +94 -0
- package/dist/core/qimen/FlyingRule.js.map +1 -0
- package/dist/core/qimen/GongMapping.d.ts +29 -0
- package/dist/core/qimen/GongMapping.d.ts.map +1 -0
- package/dist/core/qimen/GongMapping.js +83 -0
- package/dist/core/qimen/GongMapping.js.map +1 -0
- package/dist/core/qimen/RotatingRule.d.ts +76 -0
- package/dist/core/qimen/RotatingRule.d.ts.map +1 -0
- package/dist/core/qimen/RotatingRule.js +126 -0
- package/dist/core/qimen/RotatingRule.js.map +1 -0
- package/dist/core/qimen/YinYangDunCalculator.d.ts +28 -0
- package/dist/core/qimen/YinYangDunCalculator.d.ts.map +1 -0
- package/dist/core/qimen/YinYangDunCalculator.js +79 -0
- package/dist/core/qimen/YinYangDunCalculator.js.map +1 -0
- package/dist/core/qimen/index.d.ts +10 -0
- package/dist/core/qimen/index.d.ts.map +1 -0
- package/dist/core/qimen/index.js +58 -0
- package/dist/core/qimen/index.js.map +1 -0
- package/dist/core/qimen/types.d.ts +19 -0
- package/dist/core/qimen/types.d.ts.map +1 -0
- package/dist/core/qimen/types.js +7 -0
- package/dist/core/qimen/types.js.map +1 -0
- package/dist/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1311
- package/dist/index.js.map +1 -1
- package/dist/output/fortuneTextRenderer.d.ts +8 -7
- package/dist/output/fortuneTextRenderer.d.ts.map +1 -1
- package/dist/output/fortuneTextRenderer.js +83 -21
- package/dist/output/fortuneTextRenderer.js.map +1 -1
- package/dist/output/qimenTextRenderer.d.ts +36 -0
- package/dist/output/qimenTextRenderer.d.ts.map +1 -0
- package/dist/output/qimenTextRenderer.js +230 -0
- package/dist/output/qimenTextRenderer.js.map +1 -0
- package/dist/server.d.ts +11 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +33 -0
- package/dist/server.js.map +1 -0
- package/dist/services/bazi/BaziService.d.ts +1 -17
- package/dist/services/bazi/BaziService.d.ts.map +1 -1
- package/dist/services/bazi/BaziService.js +9 -194
- package/dist/services/bazi/BaziService.js.map +1 -1
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js +12 -12
- package/dist/services/bazi/analyzers/TenGodsAnalyzer.js.map +1 -1
- package/dist/services/bazi/index.d.ts +0 -2
- package/dist/services/bazi/index.d.ts.map +1 -1
- package/dist/services/bazi/index.js +1 -5
- package/dist/services/bazi/index.js.map +1 -1
- package/dist/services/bazi/types.d.ts +4 -112
- package/dist/services/bazi/types.d.ts.map +1 -1
- package/dist/services/bazi/types.js +3 -102
- package/dist/services/bazi/types.js.map +1 -1
- package/dist/services/daliuren/DaliurenService.d.ts +11 -1
- package/dist/services/daliuren/DaliurenService.d.ts.map +1 -1
- package/dist/services/daliuren/DaliurenService.js +30 -0
- package/dist/services/daliuren/DaliurenService.js.map +1 -1
- package/dist/services/daliuren/calculators/TianDiPanCalculator.d.ts.map +1 -1
- package/dist/services/daliuren/calculators/TianDiPanCalculator.js +3 -4
- package/dist/services/daliuren/calculators/TianDiPanCalculator.js.map +1 -1
- package/dist/services/daliuren/data/constants.d.ts +7 -0
- package/dist/services/daliuren/data/constants.d.ts.map +1 -1
- package/dist/services/daliuren/data/constants.js +17 -1
- package/dist/services/daliuren/data/constants.js.map +1 -1
- package/dist/services/daliuren/types.d.ts +13 -0
- package/dist/services/daliuren/types.d.ts.map +1 -1
- package/dist/services/meihua/calculators/TiyongCalculator.d.ts.map +1 -1
- package/dist/services/meihua/calculators/TiyongCalculator.js +6 -5
- package/dist/services/meihua/calculators/TiyongCalculator.js.map +1 -1
- package/dist/services/qimen/QimenService.d.ts +76 -0
- package/dist/services/qimen/QimenService.d.ts.map +1 -0
- package/dist/services/qimen/QimenService.js +393 -0
- package/dist/services/qimen/QimenService.js.map +1 -0
- package/dist/services/qimen/calculators/BaMenCalculator.d.ts +45 -0
- package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/BaMenCalculator.js +87 -0
- package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/BaShenCalculator.d.ts +34 -0
- package/dist/services/qimen/calculators/BaShenCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/BaShenCalculator.js +57 -0
- package/dist/services/qimen/calculators/BaShenCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/GeJuCalculator.d.ts +141 -0
- package/dist/services/qimen/calculators/GeJuCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/GeJuCalculator.js +711 -0
- package/dist/services/qimen/calculators/GeJuCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +49 -0
- package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/JiuGongCalculator.js +68 -0
- package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +44 -0
- package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/JiuXingCalculator.js +72 -0
- package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/JuShuCalculator.d.ts +60 -0
- package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/JuShuCalculator.js +110 -0
- package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/PanTypeCalculator.d.ts +117 -0
- package/dist/services/qimen/calculators/PanTypeCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/PanTypeCalculator.js +237 -0
- package/dist/services/qimen/calculators/PanTypeCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +41 -0
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +73 -0
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/ShenShaCalculator.d.ts +80 -0
- package/dist/services/qimen/calculators/ShenShaCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/ShenShaCalculator.js +300 -0
- package/dist/services/qimen/calculators/ShenShaCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/YongShenCalculator.d.ts +78 -0
- package/dist/services/qimen/calculators/YongShenCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/YongShenCalculator.js +497 -0
- package/dist/services/qimen/calculators/YongShenCalculator.js.map +1 -0
- package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +111 -0
- package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -0
- package/dist/services/qimen/calculators/ZhuanPanCalculator.js +232 -0
- package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -0
- package/dist/services/qimen/data/constants.d.ts +105 -0
- package/dist/services/qimen/data/constants.d.ts.map +1 -0
- package/dist/services/qimen/data/constants.js +295 -0
- package/dist/services/qimen/data/constants.js.map +1 -0
- package/dist/services/qimen/data/shensha-rules.d.ts +177 -0
- package/dist/services/qimen/data/shensha-rules.d.ts.map +1 -0
- package/dist/services/qimen/data/shensha-rules.js +397 -0
- package/dist/services/qimen/data/shensha-rules.js.map +1 -0
- package/dist/services/qimen/data/yongshen-rules.d.ts +115 -0
- package/dist/services/qimen/data/yongshen-rules.d.ts.map +1 -0
- package/dist/services/qimen/data/yongshen-rules.js +365 -0
- package/dist/services/qimen/data/yongshen-rules.js.map +1 -0
- package/dist/services/qimen/index.d.ts +20 -0
- package/dist/services/qimen/index.d.ts.map +1 -0
- package/dist/services/qimen/index.js +43 -0
- package/dist/services/qimen/index.js.map +1 -0
- package/dist/services/qimen/types.d.ts +316 -0
- package/dist/services/qimen/types.d.ts.map +1 -0
- package/dist/services/qimen/types.js +21 -0
- package/dist/services/qimen/types.js.map +1 -0
- package/dist/services/qimen/utils/gongUtils.d.ts +80 -0
- package/dist/services/qimen/utils/gongUtils.d.ts.map +1 -0
- package/dist/services/qimen/utils/gongUtils.js +164 -0
- package/dist/services/qimen/utils/gongUtils.js.map +1 -0
- package/dist/shared/logger.d.ts +5 -0
- package/dist/shared/logger.d.ts.map +1 -1
- package/dist/shared/logger.js +11 -4
- package/dist/shared/logger.js.map +1 -1
- package/dist/tools/baziTools.d.ts +13 -0
- package/dist/tools/baziTools.d.ts.map +1 -0
- package/dist/tools/baziTools.js +331 -0
- package/dist/tools/baziTools.js.map +1 -0
- package/dist/tools/divinationTools.d.ts +9 -0
- package/dist/tools/divinationTools.d.ts.map +1 -0
- package/dist/tools/divinationTools.js +209 -0
- package/dist/tools/divinationTools.js.map +1 -0
- package/dist/tools/qimenTools.d.ts +10 -0
- package/dist/tools/qimenTools.d.ts.map +1 -0
- package/dist/tools/qimenTools.js +132 -0
- package/dist/tools/qimenTools.js.map +1 -0
- package/dist/tools/schemas.d.ts +99 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +162 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/ziweiTools.d.ts +14 -0
- package/dist/tools/ziweiTools.d.ts.map +1 -0
- package/dist/tools/ziweiTools.js +483 -0
- package/dist/tools/ziweiTools.js.map +1 -0
- package/dist/utils/timeNormalization.d.ts +42 -17
- package/dist/utils/timeNormalization.d.ts.map +1 -1
- package/dist/utils/timeNormalization.js +99 -41
- package/dist/utils/timeNormalization.js.map +1 -1
- package/package.json +15 -9
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts +0 -16
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js +0 -60
- package/dist/services/bazi/analyzers/HiddenStemsAnalyzer.js.map +0 -1
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts +0 -33
- package/dist/services/bazi/analyzers/NaYinAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js +0 -209
- package/dist/services/bazi/analyzers/NaYinAnalyzer.js.map +0 -1
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts +0 -236
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js +0 -2079
- package/dist/services/bazi/analyzers/ShenShaAnalyzer.js.map +0 -1
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts +0 -46
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.d.ts.map +0 -1
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js +0 -260
- package/dist/services/bazi/analyzers/TraditionalAnalyzer.js.map +0 -1
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 转盘式奇门计算器
|
|
4
|
+
* Rotating style Qimen calculator (following《神奇之门》)
|
|
5
|
+
*
|
|
6
|
+
* 转盘式核心规则:
|
|
7
|
+
* 1. 天盘、九星、八门是三个「物理转盘」,盘内元素相对顺序恒定不变
|
|
8
|
+
* 2. 转盘环序(物理顺时针,从坎一宫起):坎→艮→震→巽→离→坤→兑→乾
|
|
9
|
+
* - 九星环序:蓬任冲辅英芮柱心(禽寄芮,随坤二宫)
|
|
10
|
+
* - 八门环序:休生伤杜景死惊开
|
|
11
|
+
* 3. 天盘干与九星同转:值符星携旬首六仪转到时干(遁干)所在的地盘宫
|
|
12
|
+
* 4. 值使门随时辰飞宫:从值符原始宫起,按旬内时辰序数,
|
|
13
|
+
* 阳遁顺数宫位数字(1→2→…→9→1)、阴遁逆数
|
|
14
|
+
* 5. 中五宫寄坤二宫;天禽随天芮
|
|
15
|
+
*
|
|
16
|
+
* 参照:《神奇之门》(张志春)、kentang2017/kinqimen pan_sky/pan_star/pan_door(MIT)
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.ZhuanPanCalculator = void 0;
|
|
20
|
+
const constants_1 = require("../data/constants");
|
|
21
|
+
/**
|
|
22
|
+
* 转盘九星环序(物理顺时针,天禽寄天芮不在环上)
|
|
23
|
+
* 与 PHYSICAL_CLOCKWISE_ORDER=[坎1,艮8,震3,巽4,离9,坤2,兑7,乾6] 一一对应
|
|
24
|
+
*/
|
|
25
|
+
const JIU_XING_RING = ['蓬', '任', '冲', '辅', '英', '芮', '柱', '心'];
|
|
26
|
+
// ============= 转盘式计算器 =============
|
|
27
|
+
/**
|
|
28
|
+
* 转盘式奇门计算器
|
|
29
|
+
* 实现《神奇之门》中的转盘式排盘法
|
|
30
|
+
*/
|
|
31
|
+
class ZhuanPanCalculator {
|
|
32
|
+
/**
|
|
33
|
+
* 获取参考干(时干/日干/月干/年干)遁干后的地盘落宫
|
|
34
|
+
* 甲遁于旬首六仪之下;落中五宫者寄坤二
|
|
35
|
+
*/
|
|
36
|
+
static getShiGanLuoGong(diPanGanGong, ganZhi) {
|
|
37
|
+
const gan = ganZhi.charAt(0);
|
|
38
|
+
const dunGan = this.getDunGan(gan, ganZhi);
|
|
39
|
+
const gong = diPanGanGong[dunGan];
|
|
40
|
+
return gong === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : gong;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 计算转盘式天盘布局
|
|
44
|
+
* @param diPanGanGong 地盘干->宫位映射
|
|
45
|
+
* @param ganZhi 时干支(时盘)、日干支(日盘)、月干支(月盘)或年干支(年盘)
|
|
46
|
+
* @param yinYangDun 阴阳遁
|
|
47
|
+
* @returns 天盘各宫的干
|
|
48
|
+
*
|
|
49
|
+
* 原理(转盘式刚体旋转):
|
|
50
|
+
* 1. 旬首六仪(值符所携之干)在地盘的原始宫
|
|
51
|
+
* 2. 参考干(时干等,甲用旬首仪)在地盘的落宫
|
|
52
|
+
* 3. 将整个地盘沿转盘环旋转,使旬首仪从原始宫转到参考干落宫
|
|
53
|
+
* 4. 中五宫之干寄坤二宫随盘转动;天盘中宫显示坤二宫之干
|
|
54
|
+
*/
|
|
55
|
+
static calculateTianPan(diPanGanGong, ganZhi, yinYangDun) {
|
|
56
|
+
const isYang = yinYangDun === '阳遁';
|
|
57
|
+
const xunShou = (0, constants_1.getXunShou)(ganZhi);
|
|
58
|
+
const fuGan = (0, constants_1.getLiuYiGan)(xunShou);
|
|
59
|
+
const shiGong = this.getShiGanLuoGong(diPanGanGong, ganZhi);
|
|
60
|
+
let fuGong = diPanGanGong[fuGan];
|
|
61
|
+
if (fuGong === 5) {
|
|
62
|
+
fuGong = constants_1.ZHONG_GONG_JI_ZHUAN; // 中五寄坤二
|
|
63
|
+
}
|
|
64
|
+
const steps = (0, constants_1.getRotationSteps)(fuGong, shiGong, isYang);
|
|
65
|
+
const gongGan = {};
|
|
66
|
+
const ganGong = {};
|
|
67
|
+
// 地盘坤二宫本干与中五宫寄干(若中五有干,二者同落一宫)
|
|
68
|
+
const kunGan = constants_1.SAN_QI_LIU_YI.find(g => diPanGanGong[g] === 2);
|
|
69
|
+
const zhongGan = constants_1.SAN_QI_LIU_YI.find(g => diPanGanGong[g] === 5);
|
|
70
|
+
for (const gan of constants_1.SAN_QI_LIU_YI) {
|
|
71
|
+
const src = diPanGanGong[gan];
|
|
72
|
+
const srcActual = src === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : src;
|
|
73
|
+
const dst = (0, constants_1.rotate)(srcActual, steps, isYang);
|
|
74
|
+
ganGong[gan] = dst;
|
|
75
|
+
gongGan[dst] = gan;
|
|
76
|
+
}
|
|
77
|
+
// 中五寄干与坤二本干同宫时,坤二本干优先显示
|
|
78
|
+
if (zhongGan !== undefined && kunGan !== undefined) {
|
|
79
|
+
const kunDst = ganGong[kunGan];
|
|
80
|
+
gongGan[kunDst] = kunGan;
|
|
81
|
+
}
|
|
82
|
+
// 天盘中五宫寄坤二,显示坤二宫天盘干
|
|
83
|
+
gongGan[5] = gongGan[constants_1.ZHONG_GONG_JI_ZHUAN];
|
|
84
|
+
return { gongGan, ganGong };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 计算转盘式八门布局
|
|
88
|
+
* @param zhiFuGong 值符星原始宫位(旬首遁干在地盘的宫位,值使门原始宫与其相同)
|
|
89
|
+
* @param refGanZhi 参考干支(时盘为时干支,余类推)
|
|
90
|
+
* @param yinYangDun 阴阳遁
|
|
91
|
+
* @returns 八门布局
|
|
92
|
+
*
|
|
93
|
+
* 原理(转盘式):
|
|
94
|
+
* 1. 值使门 = 值符星原始宫位对应的门(中五宫寄坤二取死门)
|
|
95
|
+
* 2. 值使门落宫:从值符原始宫起,按参考干支的旬内序数(甲为0),
|
|
96
|
+
* 阳遁顺数宫位数字、阴遁逆数;落中五宫寄坤二
|
|
97
|
+
* 3. 其余七门按八门环序(休生伤杜景死惊开)随盘刚体旋转
|
|
98
|
+
*/
|
|
99
|
+
static calculateBaMen(zhiFuGong, refGanZhi, yinYangDun) {
|
|
100
|
+
const isYang = yinYangDun === '阳遁';
|
|
101
|
+
// 1. 确定值使门(值符原始宫对应的门)
|
|
102
|
+
const zhiShiMen = this.getMenByGong(zhiFuGong);
|
|
103
|
+
const zhiShiGong = constants_1.BA_MEN_GONG[zhiShiMen];
|
|
104
|
+
// 2. 旬内序数:甲为0,乙为1,……癸为9(时干支/日干支在其旬内的位置)
|
|
105
|
+
const idx = constants_1.JIA_ZI_60.indexOf(refGanZhi);
|
|
106
|
+
if (idx === -1) {
|
|
107
|
+
throw new Error(`无效的干支: ${refGanZhi}`);
|
|
108
|
+
}
|
|
109
|
+
const steps = idx % 10;
|
|
110
|
+
// 3. 值使门落宫(宫位数字顺逆数,落中五寄坤二)
|
|
111
|
+
const anchor = zhiShiGong === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : zhiShiGong;
|
|
112
|
+
let luoGong = (((anchor - 1 + (isYang ? steps : -steps)) % 9) + 9) % 9 + 1;
|
|
113
|
+
if (luoGong === 5) {
|
|
114
|
+
luoGong = constants_1.ZHONG_GONG_JI_ZHUAN;
|
|
115
|
+
}
|
|
116
|
+
// 4. 八门刚体旋转:值使门从原始宫转到落宫
|
|
117
|
+
const ringSteps = (0, constants_1.getRotationSteps)(anchor, luoGong, isYang);
|
|
118
|
+
const gongMen = {};
|
|
119
|
+
for (let i = 0; i < 8; i++) {
|
|
120
|
+
const men = constants_1.BA_MEN_ORDER[i];
|
|
121
|
+
const home = constants_1.PHYSICAL_CLOCKWISE_ORDER[i]; // 八门原始宫与环序一一对应
|
|
122
|
+
gongMen[(0, constants_1.rotate)(home, ringSteps, isYang)] = men;
|
|
123
|
+
}
|
|
124
|
+
// 中宫寄坤二,使用坤二的门
|
|
125
|
+
gongMen[5] = gongMen[constants_1.ZHONG_GONG_JI_ZHUAN];
|
|
126
|
+
return {
|
|
127
|
+
gongMen,
|
|
128
|
+
zhiShiMen,
|
|
129
|
+
zhiShiGong,
|
|
130
|
+
zhiShiLuoGong: luoGong,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* 计算转盘式九星布局
|
|
135
|
+
* @param xunShouGong 旬首遁干在地盘的宫位(值符星原始宫)
|
|
136
|
+
* @param shiGanLuoGong 参考干(时干等,甲用旬首仪)的地盘落宫
|
|
137
|
+
* @param yinYangDun 阴阳遁
|
|
138
|
+
* @returns 九星布局
|
|
139
|
+
*
|
|
140
|
+
* 原理(转盘式):
|
|
141
|
+
* 1. 值符星 = 旬首遁干原始宫对应的星(中五宫为天禽,寄坤二随天芮)
|
|
142
|
+
* 2. 值符星随时干:转盘旋转使值符星从原始宫转到参考干落宫
|
|
143
|
+
* 3. 其余诸星按九星环序(蓬任冲辅英芮柱心)随盘刚体旋转
|
|
144
|
+
*/
|
|
145
|
+
static calculateJiuXing(xunShouGong, shiGanLuoGong, yinYangDun) {
|
|
146
|
+
const isYang = yinYangDun === '阳遁';
|
|
147
|
+
// 1. 确定值符星(旬首落宫对应的星)
|
|
148
|
+
const zhiFuXing = this.getXingByGong(xunShouGong);
|
|
149
|
+
const zhiFuGong = constants_1.JIU_XING_GONG[zhiFuXing];
|
|
150
|
+
// 天禽寄坤二,随天芮所在环位转动
|
|
151
|
+
const homeSlot = xunShouGong === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : xunShouGong;
|
|
152
|
+
// 2. 刚体旋转:值符星原始环位转到参考干落宫
|
|
153
|
+
const steps = (0, constants_1.getRotationSteps)(homeSlot, shiGanLuoGong, isYang);
|
|
154
|
+
const gongXing = {};
|
|
155
|
+
for (let i = 0; i < 8; i++) {
|
|
156
|
+
const home = constants_1.PHYSICAL_CLOCKWISE_ORDER[i];
|
|
157
|
+
gongXing[(0, constants_1.rotate)(home, steps, isYang)] = JIU_XING_RING[i];
|
|
158
|
+
}
|
|
159
|
+
// 天禽随天芮寄坤二,中宫显示天禽
|
|
160
|
+
gongXing[5] = '禽';
|
|
161
|
+
return {
|
|
162
|
+
gongXing,
|
|
163
|
+
zhiFuXing,
|
|
164
|
+
zhiFuGong,
|
|
165
|
+
zhiFuLuoGong: shiGanLuoGong,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// ============= 私有辅助方法 =============
|
|
169
|
+
/**
|
|
170
|
+
* 获取遁甲干
|
|
171
|
+
* 甲遁于六仪之下,需要根据干支确定
|
|
172
|
+
*/
|
|
173
|
+
static getDunGan(gan, ganZhi) {
|
|
174
|
+
if (gan !== '甲') {
|
|
175
|
+
return gan;
|
|
176
|
+
}
|
|
177
|
+
// 甲时,需要找到旬首对应的六仪
|
|
178
|
+
const xunShou = (0, constants_1.getXunShou)(ganZhi);
|
|
179
|
+
return (0, constants_1.getLiuYiGan)(xunShou);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* 根据宫位获取原始门
|
|
183
|
+
*/
|
|
184
|
+
static getMenByGong(gong) {
|
|
185
|
+
const actualGong = gong === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : gong;
|
|
186
|
+
for (const [men, menGong] of Object.entries(constants_1.BA_MEN_GONG)) {
|
|
187
|
+
if (menGong === actualGong) {
|
|
188
|
+
return men;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return '死'; // 坤二宫默认死门
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* 根据宫位获取原始星
|
|
195
|
+
*/
|
|
196
|
+
static getXingByGong(gong) {
|
|
197
|
+
for (const [xing, xingGong] of Object.entries(constants_1.JIU_XING_GONG)) {
|
|
198
|
+
if (xingGong === gong) {
|
|
199
|
+
return xing;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// 中宫为天禽
|
|
203
|
+
if (gong === 5) {
|
|
204
|
+
return '禽';
|
|
205
|
+
}
|
|
206
|
+
return '芮'; // 默认天芮
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* 根据宫位找门
|
|
210
|
+
*/
|
|
211
|
+
static findMenByGong(gongMen, gong) {
|
|
212
|
+
return gongMen[gong === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : gong];
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* 根据宫位找星
|
|
216
|
+
*/
|
|
217
|
+
static findXingByGong(gongXing, gong) {
|
|
218
|
+
if (gong === 5) {
|
|
219
|
+
return '禽';
|
|
220
|
+
}
|
|
221
|
+
return gongXing[gong];
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* 根据天干找天盘落宫
|
|
225
|
+
*/
|
|
226
|
+
static findGongByGan(ganGong, gan) {
|
|
227
|
+
const gong = ganGong[gan];
|
|
228
|
+
return gong === 5 ? constants_1.ZHONG_GONG_JI_ZHUAN : gong;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
exports.ZhuanPanCalculator = ZhuanPanCalculator;
|
|
232
|
+
//# sourceMappingURL=ZhuanPanCalculator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZhuanPanCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/ZhuanPanCalculator.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAGH,iDAY2B;AAuB3B;;;GAGG;AACH,MAAM,aAAa,GAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,qCAAqC;AAErC;;;GAGG;AACH,MAAa,kBAAkB;IAC7B;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CACrB,YAAsC,EACtC,MAAc;QAEd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAY,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QAClC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,gBAAgB,CACrB,YAAsC,EACtC,MAAc,EACd,UAAsB;QAEtB,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;QAEnC,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAE5D,IAAI,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,GAAG,+BAAmB,CAAC,CAAC,QAAQ;QACxC,CAAC;QAED,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAExD,MAAM,OAAO,GAA6B,EAA8B,CAAC;QACzE,MAAM,OAAO,GAA6B,EAA8B,CAAC;QAEzE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,yBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,yBAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAEhE,KAAK,MAAM,GAAG,IAAI,yBAAa,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,MAAM,SAAS,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,GAAG,CAAC;YACxD,MAAM,GAAG,GAAG,IAAA,kBAAM,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACrB,CAAC;QAED,wBAAwB;QACxB,IAAI,QAAQ,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACnD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QAC3B,CAAC;QAED,oBAAoB;QACpB,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,+BAAmB,CAAC,CAAC;QAE1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,cAAc,CACnB,SAAkB,EAClB,SAAiB,EACjB,UAAsB;QAEtB,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;QAEnC,sBAAsB;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,uBAAW,CAAC,SAAS,CAAC,CAAC;QAE1C,wCAAwC;QACxC,MAAM,GAAG,GAAG,qBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,UAAU,SAAS,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;QAEvB,2BAA2B;QAC3B,MAAM,MAAM,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,UAAU,CAAC;QACnE,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3E,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,GAAG,+BAAmB,CAAC;QAChC,CAAC;QAED,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAA,4BAAgB,EAAC,MAAM,EAAE,OAAkB,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,OAAO,GAA2B,EAA4B,CAAC;QACrE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,wBAAY,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,oCAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;YACzD,OAAO,CAAC,IAAA,kBAAM,EAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;QACjD,CAAC;QAED,eAAe;QACf,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,+BAAmB,CAAC,CAAC;QAE1C,OAAO;YACL,OAAO;YACP,SAAS;YACT,UAAU;YACV,aAAa,EAAE,OAAkB;SAClC,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAoB,EACpB,aAAsB,EACtB,UAAsB;QAEtB,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;QAEnC,qBAAqB;QACrB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,yBAAa,CAAC,SAAS,CAAC,CAAC;QAE3C,kBAAkB;QAClB,MAAM,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,WAAW,CAAC;QAEvE,yBAAyB;QACzB,MAAM,KAAK,GAAG,IAAA,4BAAgB,EAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,CAAC,CAAC;QAChE,MAAM,QAAQ,GAA6B,EAA8B,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,oCAAwB,CAAC,CAAC,CAAC,CAAC;YACzC,QAAQ,CAAC,IAAA,kBAAM,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QAED,kBAAkB;QAClB,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAElB,OAAO;YACL,QAAQ;YACR,SAAS;YACT,SAAS;YACT,YAAY,EAAE,aAAa;SAC5B,CAAC;IACJ,CAAC;IAED,qCAAqC;IAErC;;;OAGG;IACK,MAAM,CAAC,SAAS,CAAC,GAAY,EAAE,MAAc;QACnD,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,iBAAiB;QACjB,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,MAAM,CAAC,CAAC;QACnC,OAAO,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,YAAY,CAAC,IAAa;QACvC,MAAM,UAAU,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QAE3D,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,uBAAW,CAAC,EAAE,CAAC;YACzD,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,OAAO,GAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,CAAC,UAAU;IACxB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,aAAa,CAAC,IAAa;QACxC,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,yBAAa,CAAC,EAAE,CAAC;YAC7D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,IAAe,CAAC;YACzB,CAAC;QACH,CAAC;QAED,QAAQ;QACR,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,GAAG,CAAC,CAAC,OAAO;IACrB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAA+B,EAAE,IAAa;QACjE,OAAO,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAkC,EAAE,IAAa;QACrE,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,GAAG,CAAC;QACb,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAiC,EAAE,GAAY;QAClE,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;CACF;AA1PD,gDA0PC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 奇门遁甲常量数据
|
|
3
|
+
*
|
|
4
|
+
* 注意:飞宫规则、九宫映射、阴阳遁计算等核心逻辑已迁移到 core/qimen/
|
|
5
|
+
* 本文件重新导出核心常量,并保留奇门业务专用常量
|
|
6
|
+
*/
|
|
7
|
+
import type { TianGan, DiZhi, GongWei, BaMen, JiuXing, BaShen, WuXing, YuanType } from '../types';
|
|
8
|
+
export { LUOSHU_ORDER, LUOSHU_ORDER_9, ZHONG_GONG_JI, getLuoShuIndex, getLuoShuGong, getLuoShuIndex9, getLuoShuGong9, flyForward, flyBackward, PHYSICAL_CLOCKWISE_ORDER, PHYSICAL_COUNTER_CLOCKWISE_ORDER, ZHONG_GONG_JI_ZHUAN, getPhysicalClockwiseIndex, getPhysicalClockwiseGong, getPhysicalCounterClockwiseIndex, getPhysicalCounterClockwiseGong, rotate, getRotationSteps, GONG_NAMES, GONG_WUXING, DI_ZHI_GONG, CHONG_GONG_MAP, GAN_HE_MAP, JIEQI_JU_MAP, getYinYangDun, getJuShu, } from '../../../core/qimen';
|
|
9
|
+
/** 十天干 */
|
|
10
|
+
export declare const TIAN_GAN: TianGan[];
|
|
11
|
+
/** 十二地支 */
|
|
12
|
+
export declare const DI_ZHI: DiZhi[];
|
|
13
|
+
/**
|
|
14
|
+
* 三奇六仪顺序 (戊-癸-壬-辛-庚-己-丁-丙-乙)
|
|
15
|
+
* 甲遁于戊下,所以顺序从戊开始
|
|
16
|
+
*/
|
|
17
|
+
export declare const SAN_QI_LIU_YI: TianGan[];
|
|
18
|
+
/**
|
|
19
|
+
* 六仪(甲子戊、甲戌己、甲申庚、甲午辛、甲辰壬、甲寅癸)
|
|
20
|
+
* 旬首 -> 对应的遁甲干
|
|
21
|
+
*/
|
|
22
|
+
export declare const LIU_YI_MAP: Record<string, TianGan>;
|
|
23
|
+
/**
|
|
24
|
+
* 六十甲子表
|
|
25
|
+
*/
|
|
26
|
+
export declare const JIA_ZI_60: string[];
|
|
27
|
+
/**
|
|
28
|
+
* 旬空表(每旬的空亡地支)
|
|
29
|
+
*/
|
|
30
|
+
export declare const XUN_KONG: Record<string, [DiZhi, DiZhi]>;
|
|
31
|
+
/**
|
|
32
|
+
* 八门原始宫位
|
|
33
|
+
* 休门居坎1、生门居艮8、伤门居震3、杜门居巽4
|
|
34
|
+
* 景门居离9、死门居坤2、惊门居兑7、开门居乾6
|
|
35
|
+
*/
|
|
36
|
+
export declare const BA_MEN_GONG: Record<BaMen, GongWei>;
|
|
37
|
+
/** 八门顺序(按宫位顺序) */
|
|
38
|
+
export declare const BA_MEN_ORDER: BaMen[];
|
|
39
|
+
/** 八门全称 */
|
|
40
|
+
export declare const BA_MEN_FULL: Record<BaMen, string>;
|
|
41
|
+
/**
|
|
42
|
+
* 九星原始宫位
|
|
43
|
+
* 天蓬居坎1、天芮居坤2、天冲居震3、天辅居巽4
|
|
44
|
+
* 天禽居中5、天心居乾6、天柱居兑7、天任居艮8、天英居离9
|
|
45
|
+
*/
|
|
46
|
+
export declare const JIU_XING_GONG: Record<JiuXing, GongWei>;
|
|
47
|
+
/** 九星顺序(按宫位顺序) */
|
|
48
|
+
export declare const JIU_XING_ORDER: JiuXing[];
|
|
49
|
+
/** 九星全称 */
|
|
50
|
+
export declare const JIU_XING_FULL: Record<JiuXing, string>;
|
|
51
|
+
/**
|
|
52
|
+
* 八神顺序
|
|
53
|
+
* 阳遁:值符-腾蛇-太阴-六合-白虎-玄武-九地-九天(顺时针)
|
|
54
|
+
* 阴遁:值符-腾蛇-太阴-六合-白虎-玄武-九地-九天(逆时针)
|
|
55
|
+
*/
|
|
56
|
+
export declare const BA_SHEN_ORDER: BaShen[];
|
|
57
|
+
/** 八神全称 */
|
|
58
|
+
export declare const BA_SHEN_FULL: Record<BaShen, string>;
|
|
59
|
+
/**
|
|
60
|
+
* 符头表:根据日干支确定属于哪个旬
|
|
61
|
+
*/
|
|
62
|
+
export declare const FU_TOU_MAP: Record<string, string>;
|
|
63
|
+
/**
|
|
64
|
+
* 天干五行
|
|
65
|
+
*/
|
|
66
|
+
export declare const TIAN_GAN_WUXING: Record<TianGan, WuXing>;
|
|
67
|
+
/**
|
|
68
|
+
* 马星地支
|
|
69
|
+
* 日支 -> 马星所在地支
|
|
70
|
+
*/
|
|
71
|
+
export declare const MA_XING: Record<DiZhi, DiZhi>;
|
|
72
|
+
/**
|
|
73
|
+
* 奇仪组合格局定义
|
|
74
|
+
* 天盘干 + 地盘干 的特定组合产生的吉凶格局
|
|
75
|
+
*
|
|
76
|
+
* 注意:甲不上盘,甲遁于六仪,故不检测甲
|
|
77
|
+
*/
|
|
78
|
+
export interface QiYiGeJuDef {
|
|
79
|
+
tianGan: TianGan;
|
|
80
|
+
diGan: TianGan;
|
|
81
|
+
name: string;
|
|
82
|
+
type: '吉格' | '凶格';
|
|
83
|
+
description: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 奇仪组合格局映射表
|
|
87
|
+
*/
|
|
88
|
+
export declare const QI_YI_GEJU_MAP: QiYiGeJuDef[];
|
|
89
|
+
/**
|
|
90
|
+
* 根据干支获取旬首
|
|
91
|
+
*/
|
|
92
|
+
export declare function getXunShou(ganZhi: string): string;
|
|
93
|
+
/**
|
|
94
|
+
* 获取旬空
|
|
95
|
+
*/
|
|
96
|
+
export declare function getXunKong(xunShou: string): [DiZhi, DiZhi];
|
|
97
|
+
/**
|
|
98
|
+
* 获取六仪遁干
|
|
99
|
+
*/
|
|
100
|
+
export declare function getLiuYiGan(xunShou: string): TianGan;
|
|
101
|
+
/**
|
|
102
|
+
* 根据元获取局数索引
|
|
103
|
+
*/
|
|
104
|
+
export declare function getYuanIndex(yuan: YuanType): 0 | 1 | 2;
|
|
105
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/data/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,OAAO,EACP,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACT,MAAM,UAAU,CAAC;AAIlB,OAAO,EAEL,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EAEX,wBAAwB,EACxB,gCAAgC,EAChC,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,+BAA+B,EAC/B,MAAM,EACN,gBAAgB,EAEhB,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EAEV,YAAY,EACZ,aAAa,EACb,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAI7B,UAAU;AACV,eAAO,MAAM,QAAQ,EAAE,OAAO,EAE7B,CAAC;AAEF,WAAW;AACX,eAAO,MAAM,MAAM,EAAE,KAAK,EAEzB,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,OAAO,EAElC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAO9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,EAO7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAOnD,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAS9C,CAAC;AAEF,kBAAkB;AAClB,eAAO,MAAM,YAAY,EAAE,KAAK,EAA6C,CAAC;AAE9E,WAAW;AACX,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAS7C,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAUlD,CAAC;AAEF,kBAAkB;AAClB,eAAO,MAAM,cAAc,EAAE,OAAO,EAAkD,CAAC;AAEvF,WAAW;AACX,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAUjD,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,EAA6C,CAAC;AAEhF,WAAW;AACX,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAS/C,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAa1C,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAWnD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAaxC,CAAC;AAIF;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,EAwCvC,CAAC;AAIF;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAMtD"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* 奇门遁甲常量数据
|
|
4
|
+
*
|
|
5
|
+
* 注意:飞宫规则、九宫映射、阴阳遁计算等核心逻辑已迁移到 core/qimen/
|
|
6
|
+
* 本文件重新导出核心常量,并保留奇门业务专用常量
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.QI_YI_GEJU_MAP = exports.MA_XING = exports.TIAN_GAN_WUXING = exports.FU_TOU_MAP = exports.BA_SHEN_FULL = exports.BA_SHEN_ORDER = exports.JIU_XING_FULL = exports.JIU_XING_ORDER = exports.JIU_XING_GONG = exports.BA_MEN_FULL = exports.BA_MEN_ORDER = exports.BA_MEN_GONG = exports.XUN_KONG = exports.JIA_ZI_60 = exports.LIU_YI_MAP = exports.SAN_QI_LIU_YI = exports.DI_ZHI = exports.TIAN_GAN = exports.getJuShu = exports.getYinYangDun = exports.JIEQI_JU_MAP = exports.GAN_HE_MAP = exports.CHONG_GONG_MAP = exports.DI_ZHI_GONG = exports.GONG_WUXING = exports.GONG_NAMES = exports.getRotationSteps = exports.rotate = exports.getPhysicalCounterClockwiseGong = exports.getPhysicalCounterClockwiseIndex = exports.getPhysicalClockwiseGong = exports.getPhysicalClockwiseIndex = exports.ZHONG_GONG_JI_ZHUAN = exports.PHYSICAL_COUNTER_CLOCKWISE_ORDER = exports.PHYSICAL_CLOCKWISE_ORDER = exports.flyBackward = exports.flyForward = exports.getLuoShuGong9 = exports.getLuoShuIndex9 = exports.getLuoShuGong = exports.getLuoShuIndex = exports.ZHONG_GONG_JI = exports.LUOSHU_ORDER_9 = exports.LUOSHU_ORDER = void 0;
|
|
10
|
+
exports.getXunShou = getXunShou;
|
|
11
|
+
exports.getXunKong = getXunKong;
|
|
12
|
+
exports.getLiuYiGan = getLiuYiGan;
|
|
13
|
+
exports.getYuanIndex = getYuanIndex;
|
|
14
|
+
// ============= 从 core/qimen 重新导出 =============
|
|
15
|
+
var qimen_1 = require("../../../core/qimen");
|
|
16
|
+
// Flying rules (飞盘式)
|
|
17
|
+
Object.defineProperty(exports, "LUOSHU_ORDER", { enumerable: true, get: function () { return qimen_1.LUOSHU_ORDER; } });
|
|
18
|
+
Object.defineProperty(exports, "LUOSHU_ORDER_9", { enumerable: true, get: function () { return qimen_1.LUOSHU_ORDER_9; } });
|
|
19
|
+
Object.defineProperty(exports, "ZHONG_GONG_JI", { enumerable: true, get: function () { return qimen_1.ZHONG_GONG_JI; } });
|
|
20
|
+
Object.defineProperty(exports, "getLuoShuIndex", { enumerable: true, get: function () { return qimen_1.getLuoShuIndex; } });
|
|
21
|
+
Object.defineProperty(exports, "getLuoShuGong", { enumerable: true, get: function () { return qimen_1.getLuoShuGong; } });
|
|
22
|
+
Object.defineProperty(exports, "getLuoShuIndex9", { enumerable: true, get: function () { return qimen_1.getLuoShuIndex9; } });
|
|
23
|
+
Object.defineProperty(exports, "getLuoShuGong9", { enumerable: true, get: function () { return qimen_1.getLuoShuGong9; } });
|
|
24
|
+
Object.defineProperty(exports, "flyForward", { enumerable: true, get: function () { return qimen_1.flyForward; } });
|
|
25
|
+
Object.defineProperty(exports, "flyBackward", { enumerable: true, get: function () { return qimen_1.flyBackward; } });
|
|
26
|
+
// Rotating rules (转盘式)
|
|
27
|
+
Object.defineProperty(exports, "PHYSICAL_CLOCKWISE_ORDER", { enumerable: true, get: function () { return qimen_1.PHYSICAL_CLOCKWISE_ORDER; } });
|
|
28
|
+
Object.defineProperty(exports, "PHYSICAL_COUNTER_CLOCKWISE_ORDER", { enumerable: true, get: function () { return qimen_1.PHYSICAL_COUNTER_CLOCKWISE_ORDER; } });
|
|
29
|
+
Object.defineProperty(exports, "ZHONG_GONG_JI_ZHUAN", { enumerable: true, get: function () { return qimen_1.ZHONG_GONG_JI_ZHUAN; } });
|
|
30
|
+
Object.defineProperty(exports, "getPhysicalClockwiseIndex", { enumerable: true, get: function () { return qimen_1.getPhysicalClockwiseIndex; } });
|
|
31
|
+
Object.defineProperty(exports, "getPhysicalClockwiseGong", { enumerable: true, get: function () { return qimen_1.getPhysicalClockwiseGong; } });
|
|
32
|
+
Object.defineProperty(exports, "getPhysicalCounterClockwiseIndex", { enumerable: true, get: function () { return qimen_1.getPhysicalCounterClockwiseIndex; } });
|
|
33
|
+
Object.defineProperty(exports, "getPhysicalCounterClockwiseGong", { enumerable: true, get: function () { return qimen_1.getPhysicalCounterClockwiseGong; } });
|
|
34
|
+
Object.defineProperty(exports, "rotate", { enumerable: true, get: function () { return qimen_1.rotate; } });
|
|
35
|
+
Object.defineProperty(exports, "getRotationSteps", { enumerable: true, get: function () { return qimen_1.getRotationSteps; } });
|
|
36
|
+
// Gong mappings
|
|
37
|
+
Object.defineProperty(exports, "GONG_NAMES", { enumerable: true, get: function () { return qimen_1.GONG_NAMES; } });
|
|
38
|
+
Object.defineProperty(exports, "GONG_WUXING", { enumerable: true, get: function () { return qimen_1.GONG_WUXING; } });
|
|
39
|
+
Object.defineProperty(exports, "DI_ZHI_GONG", { enumerable: true, get: function () { return qimen_1.DI_ZHI_GONG; } });
|
|
40
|
+
Object.defineProperty(exports, "CHONG_GONG_MAP", { enumerable: true, get: function () { return qimen_1.CHONG_GONG_MAP; } });
|
|
41
|
+
Object.defineProperty(exports, "GAN_HE_MAP", { enumerable: true, get: function () { return qimen_1.GAN_HE_MAP; } });
|
|
42
|
+
// Yin-Yang Dun
|
|
43
|
+
Object.defineProperty(exports, "JIEQI_JU_MAP", { enumerable: true, get: function () { return qimen_1.JIEQI_JU_MAP; } });
|
|
44
|
+
Object.defineProperty(exports, "getYinYangDun", { enumerable: true, get: function () { return qimen_1.getYinYangDun; } });
|
|
45
|
+
Object.defineProperty(exports, "getJuShu", { enumerable: true, get: function () { return qimen_1.getJuShu; } });
|
|
46
|
+
// ============= 天干地支序列 =============
|
|
47
|
+
/** 十天干 */
|
|
48
|
+
exports.TIAN_GAN = [
|
|
49
|
+
'甲', '乙', '丙', '丁', '戊', '己', '庚', '辛', '壬', '癸'
|
|
50
|
+
];
|
|
51
|
+
/** 十二地支 */
|
|
52
|
+
exports.DI_ZHI = [
|
|
53
|
+
'子', '丑', '寅', '卯', '辰', '巳', '午', '未', '申', '酉', '戌', '亥'
|
|
54
|
+
];
|
|
55
|
+
// ============= 三奇六仪 =============
|
|
56
|
+
/**
|
|
57
|
+
* 三奇六仪顺序 (戊-癸-壬-辛-庚-己-丁-丙-乙)
|
|
58
|
+
* 甲遁于戊下,所以顺序从戊开始
|
|
59
|
+
*/
|
|
60
|
+
exports.SAN_QI_LIU_YI = [
|
|
61
|
+
'戊', '己', '庚', '辛', '壬', '癸', '丁', '丙', '乙'
|
|
62
|
+
];
|
|
63
|
+
/**
|
|
64
|
+
* 六仪(甲子戊、甲戌己、甲申庚、甲午辛、甲辰壬、甲寅癸)
|
|
65
|
+
* 旬首 -> 对应的遁甲干
|
|
66
|
+
*/
|
|
67
|
+
exports.LIU_YI_MAP = {
|
|
68
|
+
'甲子': '戊',
|
|
69
|
+
'甲戌': '己',
|
|
70
|
+
'甲申': '庚',
|
|
71
|
+
'甲午': '辛',
|
|
72
|
+
'甲辰': '壬',
|
|
73
|
+
'甲寅': '癸',
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* 六十甲子表
|
|
77
|
+
*/
|
|
78
|
+
exports.JIA_ZI_60 = [
|
|
79
|
+
'甲子', '乙丑', '丙寅', '丁卯', '戊辰', '己巳', '庚午', '辛未', '壬申', '癸酉',
|
|
80
|
+
'甲戌', '乙亥', '丙子', '丁丑', '戊寅', '己卯', '庚辰', '辛巳', '壬午', '癸未',
|
|
81
|
+
'甲申', '乙酉', '丙戌', '丁亥', '戊子', '己丑', '庚寅', '辛卯', '壬辰', '癸巳',
|
|
82
|
+
'甲午', '乙未', '丙申', '丁酉', '戊戌', '己亥', '庚子', '辛丑', '壬寅', '癸卯',
|
|
83
|
+
'甲辰', '乙巳', '丙午', '丁未', '戊申', '己酉', '庚戌', '辛亥', '壬子', '癸丑',
|
|
84
|
+
'甲寅', '乙卯', '丙辰', '丁巳', '戊午', '己未', '庚申', '辛酉', '壬戌', '癸亥',
|
|
85
|
+
];
|
|
86
|
+
/**
|
|
87
|
+
* 旬空表(每旬的空亡地支)
|
|
88
|
+
*/
|
|
89
|
+
exports.XUN_KONG = {
|
|
90
|
+
'甲子': ['戌', '亥'],
|
|
91
|
+
'甲戌': ['申', '酉'],
|
|
92
|
+
'甲申': ['午', '未'],
|
|
93
|
+
'甲午': ['辰', '巳'],
|
|
94
|
+
'甲辰': ['寅', '卯'],
|
|
95
|
+
'甲寅': ['子', '丑'],
|
|
96
|
+
};
|
|
97
|
+
// ============= 八门 =============
|
|
98
|
+
/**
|
|
99
|
+
* 八门原始宫位
|
|
100
|
+
* 休门居坎1、生门居艮8、伤门居震3、杜门居巽4
|
|
101
|
+
* 景门居离9、死门居坤2、惊门居兑7、开门居乾6
|
|
102
|
+
*/
|
|
103
|
+
exports.BA_MEN_GONG = {
|
|
104
|
+
'休': 1,
|
|
105
|
+
'生': 8,
|
|
106
|
+
'伤': 3,
|
|
107
|
+
'杜': 4,
|
|
108
|
+
'景': 9,
|
|
109
|
+
'死': 2,
|
|
110
|
+
'惊': 7,
|
|
111
|
+
'开': 6,
|
|
112
|
+
};
|
|
113
|
+
/** 八门顺序(按宫位顺序) */
|
|
114
|
+
exports.BA_MEN_ORDER = ['休', '生', '伤', '杜', '景', '死', '惊', '开'];
|
|
115
|
+
/** 八门全称 */
|
|
116
|
+
exports.BA_MEN_FULL = {
|
|
117
|
+
'休': '休门',
|
|
118
|
+
'生': '生门',
|
|
119
|
+
'伤': '伤门',
|
|
120
|
+
'杜': '杜门',
|
|
121
|
+
'景': '景门',
|
|
122
|
+
'死': '死门',
|
|
123
|
+
'惊': '惊门',
|
|
124
|
+
'开': '开门',
|
|
125
|
+
};
|
|
126
|
+
// ============= 九星 =============
|
|
127
|
+
/**
|
|
128
|
+
* 九星原始宫位
|
|
129
|
+
* 天蓬居坎1、天芮居坤2、天冲居震3、天辅居巽4
|
|
130
|
+
* 天禽居中5、天心居乾6、天柱居兑7、天任居艮8、天英居离9
|
|
131
|
+
*/
|
|
132
|
+
exports.JIU_XING_GONG = {
|
|
133
|
+
'蓬': 1,
|
|
134
|
+
'芮': 2,
|
|
135
|
+
'冲': 3,
|
|
136
|
+
'辅': 4,
|
|
137
|
+
'禽': 5,
|
|
138
|
+
'心': 6,
|
|
139
|
+
'柱': 7,
|
|
140
|
+
'任': 8,
|
|
141
|
+
'英': 9,
|
|
142
|
+
};
|
|
143
|
+
/** 九星顺序(按宫位顺序) */
|
|
144
|
+
exports.JIU_XING_ORDER = ['蓬', '芮', '冲', '辅', '禽', '心', '柱', '任', '英'];
|
|
145
|
+
/** 九星全称 */
|
|
146
|
+
exports.JIU_XING_FULL = {
|
|
147
|
+
'蓬': '天蓬',
|
|
148
|
+
'芮': '天芮',
|
|
149
|
+
'冲': '天冲',
|
|
150
|
+
'辅': '天辅',
|
|
151
|
+
'禽': '天禽',
|
|
152
|
+
'心': '天心',
|
|
153
|
+
'柱': '天柱',
|
|
154
|
+
'任': '天任',
|
|
155
|
+
'英': '天英',
|
|
156
|
+
};
|
|
157
|
+
// ============= 八神 =============
|
|
158
|
+
/**
|
|
159
|
+
* 八神顺序
|
|
160
|
+
* 阳遁:值符-腾蛇-太阴-六合-白虎-玄武-九地-九天(顺时针)
|
|
161
|
+
* 阴遁:值符-腾蛇-太阴-六合-白虎-玄武-九地-九天(逆时针)
|
|
162
|
+
*/
|
|
163
|
+
exports.BA_SHEN_ORDER = ['符', '蛇', '阴', '合', '虎', '武', '地', '天'];
|
|
164
|
+
/** 八神全称 */
|
|
165
|
+
exports.BA_SHEN_FULL = {
|
|
166
|
+
'符': '值符',
|
|
167
|
+
'蛇': '腾蛇',
|
|
168
|
+
'阴': '太阴',
|
|
169
|
+
'合': '六合',
|
|
170
|
+
'虎': '白虎',
|
|
171
|
+
'武': '玄武',
|
|
172
|
+
'地': '九地',
|
|
173
|
+
'天': '九天',
|
|
174
|
+
};
|
|
175
|
+
// ============= 其他奇门专用常量 =============
|
|
176
|
+
/**
|
|
177
|
+
* 符头表:根据日干支确定属于哪个旬
|
|
178
|
+
*/
|
|
179
|
+
exports.FU_TOU_MAP = (() => {
|
|
180
|
+
const map = {};
|
|
181
|
+
const xunShous = ['甲子', '甲戌', '甲申', '甲午', '甲辰', '甲寅'];
|
|
182
|
+
for (const xunShou of xunShous) {
|
|
183
|
+
const startIdx = exports.JIA_ZI_60.indexOf(xunShou);
|
|
184
|
+
for (let i = 0; i < 10; i++) {
|
|
185
|
+
const ganZhi = exports.JIA_ZI_60[(startIdx + i) % 60];
|
|
186
|
+
map[ganZhi] = xunShou;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return map;
|
|
190
|
+
})();
|
|
191
|
+
/**
|
|
192
|
+
* 天干五行
|
|
193
|
+
*/
|
|
194
|
+
exports.TIAN_GAN_WUXING = {
|
|
195
|
+
'甲': '木',
|
|
196
|
+
'乙': '木',
|
|
197
|
+
'丙': '火',
|
|
198
|
+
'丁': '火',
|
|
199
|
+
'戊': '土',
|
|
200
|
+
'己': '土',
|
|
201
|
+
'庚': '金',
|
|
202
|
+
'辛': '金',
|
|
203
|
+
'壬': '水',
|
|
204
|
+
'癸': '水',
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* 马星地支
|
|
208
|
+
* 日支 -> 马星所在地支
|
|
209
|
+
*/
|
|
210
|
+
exports.MA_XING = {
|
|
211
|
+
'申': '寅',
|
|
212
|
+
'子': '寅',
|
|
213
|
+
'辰': '寅',
|
|
214
|
+
'寅': '申',
|
|
215
|
+
'午': '申',
|
|
216
|
+
'戌': '申',
|
|
217
|
+
'亥': '巳',
|
|
218
|
+
'卯': '巳',
|
|
219
|
+
'未': '巳',
|
|
220
|
+
'巳': '亥',
|
|
221
|
+
'酉': '亥',
|
|
222
|
+
'丑': '亥',
|
|
223
|
+
};
|
|
224
|
+
/**
|
|
225
|
+
* 奇仪组合格局映射表
|
|
226
|
+
*/
|
|
227
|
+
exports.QI_YI_GEJU_MAP = [
|
|
228
|
+
// ========== 吉格(8种) ==========
|
|
229
|
+
{ tianGan: '乙', diGan: '戊', name: '青龙返首', type: '吉格', description: '乙奇临戊,龙归故里' },
|
|
230
|
+
{ tianGan: '丙', diGan: '戊', name: '飞鸟跌穴', type: '吉格', description: '丙奇临戊,鸟归巢穴' },
|
|
231
|
+
{ tianGan: '丁', diGan: '戊', name: '丁遇戊格', type: '吉格', description: '丁奇临戊,玉女守护' },
|
|
232
|
+
{ tianGan: '丙', diGan: '乙', name: '日月会合', type: '吉格', description: '丙临乙,日月相会' },
|
|
233
|
+
{ tianGan: '丁', diGan: '乙', name: '奇仪相佐', type: '吉格', description: '丁临乙,星月相辉' },
|
|
234
|
+
{ tianGan: '乙', diGan: '丙', name: '日月并行', type: '吉格', description: '乙临丙,阴阳和合' },
|
|
235
|
+
{ tianGan: '丁', diGan: '丙', name: '星奇朱雀', type: '吉格', description: '丁临丙,星辉日出' },
|
|
236
|
+
{ tianGan: '丁', diGan: '丁', name: '星奇入太', type: '吉格', description: '丁奇伏吟,可断隐私事' },
|
|
237
|
+
// ========== 伏吟格局(6种,中性偏吉/凶视情况) ==========
|
|
238
|
+
{ tianGan: '乙', diGan: '乙', name: '乙奇伏吟', type: '吉格', description: '乙奇自临,主隐私阴谋' },
|
|
239
|
+
{ tianGan: '丙', diGan: '丙', name: '丙奇伏吟', type: '吉格', description: '丙奇自临,光明正大' },
|
|
240
|
+
{ tianGan: '戊', diGan: '戊', name: '戊仪伏吟', type: '凶格', description: '戊仪自临,财物不动' },
|
|
241
|
+
{ tianGan: '己', diGan: '己', name: '己仪伏吟', type: '凶格', description: '己仪自临,主私昧纠缠' },
|
|
242
|
+
{ tianGan: '壬', diGan: '壬', name: '壬仪伏吟', type: '凶格', description: '壬仪自临,流动停滞' },
|
|
243
|
+
{ tianGan: '癸', diGan: '癸', name: '癸仪伏吟', type: '凶格', description: '癸仪自临,阴私暗昧' },
|
|
244
|
+
{ tianGan: '辛', diGan: '辛', name: '辛仪伏吟', type: '凶格', description: '辛仪自临,阴金凝滞' },
|
|
245
|
+
// ========== 凶格(18种,不含上方伏吟类) ==========
|
|
246
|
+
{ tianGan: '乙', diGan: '辛', name: '青龙折足', type: '凶格', description: '乙遇辛,金克木' },
|
|
247
|
+
{ tianGan: '辛', diGan: '乙', name: '白虎逢星', type: '凶格', description: '辛临乙,金克木' }, // 避免与"庚+开+虎"的白虎猖狂混淆
|
|
248
|
+
{ tianGan: '丁', diGan: '癸', name: '朱雀投江', type: '凶格', description: '丁遇癸,水克火' },
|
|
249
|
+
{ tianGan: '癸', diGan: '丁', name: '腾蛇夭矫', type: '凶格', description: '癸临丁,水火相战' },
|
|
250
|
+
{ tianGan: '庚', diGan: '丙', name: '太白入荧', type: '凶格', description: '庚临丙,金入火乡' },
|
|
251
|
+
{ tianGan: '丙', diGan: '庚', name: '荧入太白', type: '凶格', description: '丙临庚,火入金地' },
|
|
252
|
+
{ tianGan: '庚', diGan: '癸', name: '大格', type: '凶格', description: '庚临癸,阻滞严重' },
|
|
253
|
+
{ tianGan: '庚', diGan: '壬', name: '小格', type: '凶格', description: '庚临壬,小有阻碍' },
|
|
254
|
+
{ tianGan: '庚', diGan: '庚', name: '刑格', type: '凶格', description: '庚金伏吟,主刑伤' },
|
|
255
|
+
{ tianGan: '戊', diGan: '庚', name: '戊加庚格', type: '凶格', description: '甲首遇庚,主悖逆' },
|
|
256
|
+
{ tianGan: '己', diGan: '庚', name: '己加庚格', type: '凶格', description: '甲首遇庚,主悖逆' },
|
|
257
|
+
{ tianGan: '壬', diGan: '庚', name: '飞宫格', type: '凶格', description: '壬临庚,飞扬跋扈' },
|
|
258
|
+
{ tianGan: '癸', diGan: '庚', name: '伏宫格', type: '凶格', description: '癸临庚,阴私暗害' },
|
|
259
|
+
{ tianGan: '癸', diGan: '戊', name: '地网高张', type: '凶格', description: '癸临戊,地网笼罩' },
|
|
260
|
+
// 补充庚/辛相关格局
|
|
261
|
+
{ tianGan: '庚', diGan: '乙', name: '庚加乙格', type: '凶格', description: '庚临乙,金克木,主官非口舌' },
|
|
262
|
+
{ tianGan: '庚', diGan: '丁', name: '庚加丁格', type: '凶格', description: '庚临丁,金夺火气,主文书阻滞' },
|
|
263
|
+
{ tianGan: '辛', diGan: '丙', name: '辛加丙格', type: '凶格', description: '辛临丙,金被火炼,主损耗变化' },
|
|
264
|
+
{ tianGan: '辛', diGan: '丁', name: '辛加丁格', type: '凶格', description: '辛临丁,阴金遇阴火,主暗昧是非' },
|
|
265
|
+
];
|
|
266
|
+
// ============= 辅助函数 =============
|
|
267
|
+
/**
|
|
268
|
+
* 根据干支获取旬首
|
|
269
|
+
*/
|
|
270
|
+
function getXunShou(ganZhi) {
|
|
271
|
+
return exports.FU_TOU_MAP[ganZhi] || '甲子';
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* 获取旬空
|
|
275
|
+
*/
|
|
276
|
+
function getXunKong(xunShou) {
|
|
277
|
+
return exports.XUN_KONG[xunShou] || ['戌', '亥'];
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* 获取六仪遁干
|
|
281
|
+
*/
|
|
282
|
+
function getLiuYiGan(xunShou) {
|
|
283
|
+
return exports.LIU_YI_MAP[xunShou] || '戊';
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* 根据元获取局数索引
|
|
287
|
+
*/
|
|
288
|
+
function getYuanIndex(yuan) {
|
|
289
|
+
switch (yuan) {
|
|
290
|
+
case '上元': return 0;
|
|
291
|
+
case '中元': return 1;
|
|
292
|
+
case '下元': return 2;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=constants.js.map
|