mingpan 0.1.3 → 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 +56 -11
- 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/index.d.ts +10 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -1578
- 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 +2 -6
- package/dist/output/qimenTextRenderer.d.ts.map +1 -1
- package/dist/output/qimenTextRenderer.js +12 -145
- package/dist/output/qimenTextRenderer.js.map +1 -1
- 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 +1 -18
- package/dist/services/qimen/QimenService.d.ts.map +1 -1
- package/dist/services/qimen/QimenService.js +9 -43
- package/dist/services/qimen/QimenService.js.map +1 -1
- package/dist/services/qimen/calculators/BaMenCalculator.d.ts +14 -22
- package/dist/services/qimen/calculators/BaMenCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/BaMenCalculator.js +41 -59
- package/dist/services/qimen/calculators/BaMenCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/JiuGongCalculator.d.ts +6 -13
- package/dist/services/qimen/calculators/JiuGongCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/JiuGongCalculator.js +11 -41
- package/dist/services/qimen/calculators/JiuGongCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/JiuXingCalculator.d.ts +13 -23
- package/dist/services/qimen/calculators/JiuXingCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/JiuXingCalculator.js +23 -68
- package/dist/services/qimen/calculators/JiuXingCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/JuShuCalculator.d.ts +8 -5
- package/dist/services/qimen/calculators/JuShuCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/JuShuCalculator.js +14 -19
- package/dist/services/qimen/calculators/JuShuCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts +11 -20
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js +29 -42
- package/dist/services/qimen/calculators/SanQiLiuYiCalculator.js.map +1 -1
- package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts +34 -41
- package/dist/services/qimen/calculators/ZhuanPanCalculator.d.ts.map +1 -1
- package/dist/services/qimen/calculators/ZhuanPanCalculator.js +102 -130
- package/dist/services/qimen/calculators/ZhuanPanCalculator.js.map +1 -1
- package/dist/services/qimen/types.d.ts +3 -77
- package/dist/services/qimen/types.d.ts.map +1 -1
- package/dist/services/qimen/types.js +3 -2
- package/dist/services/qimen/types.js.map +1 -1
- 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
- package/dist/services/qimen/calculators/ZeRiCalculator.d.ts +0 -78
- package/dist/services/qimen/calculators/ZeRiCalculator.d.ts.map +0 -1
- package/dist/services/qimen/calculators/ZeRiCalculator.js +0 -431
- package/dist/services/qimen/calculators/ZeRiCalculator.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JiuXingCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuXingCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"JiuXingCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuXingCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM7D,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,UAAU;IACV,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY;IACZ,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CACd,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,UAAU,GACrB,aAAa;IA2BhB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;CAGlF"}
|
|
@@ -1,46 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
3
|
+
* 九星计算器(飞盘式)
|
|
4
|
+
* 计算九星在九宫中的飞布
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.JiuXingCalculator = void 0;
|
|
8
8
|
const constants_1 = require("../data/constants");
|
|
9
9
|
/**
|
|
10
|
-
*
|
|
10
|
+
* 九星计算器(飞盘式)
|
|
11
11
|
* 负责计算九星的飞布
|
|
12
12
|
*/
|
|
13
13
|
class JiuXingCalculator {
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param xunShouGong
|
|
17
|
-
* @param
|
|
15
|
+
* 计算飞盘式九星布局
|
|
16
|
+
* @param xunShouGong 旬首遁干在地盘的宫位(值符星原始宫)
|
|
17
|
+
* @param shiGanLuoGong 参考干(时干等,甲用旬首仪)的地盘落宫
|
|
18
18
|
* @param yinYangDun 阴阳遁
|
|
19
19
|
* @returns 九星布局
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
* 1.
|
|
23
|
-
* 2.
|
|
24
|
-
* 3.
|
|
25
|
-
*
|
|
21
|
+
* 原理(飞盘式):
|
|
22
|
+
* 1. 值符星 = 旬首遁干原始宫对应的星(中五宫为天禽)
|
|
23
|
+
* 2. 值符星随时干:飞到参考干落宫
|
|
24
|
+
* 3. 其余诸星按九星原始序(蓬芮冲辅禽心柱任英,即原始宫数字序)
|
|
25
|
+
* 自值符星起,按宫位数字顺序飞布,阳遁顺飞、阴遁逆飞
|
|
26
26
|
*/
|
|
27
|
-
static calculate(xunShouGong,
|
|
27
|
+
static calculate(xunShouGong, shiGanLuoGong, yinYangDun) {
|
|
28
28
|
const isYang = yinYangDun === '阳遁';
|
|
29
29
|
// 1. 确定值符星(旬首落宫对应的星)
|
|
30
30
|
const zhiFuXing = this.getXingByGong(xunShouGong);
|
|
31
31
|
const zhiFuGong = constants_1.JIU_XING_GONG[zhiFuXing];
|
|
32
|
-
// 2.
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
//
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
// 2. 飞布序列:自值符星起,按九星原始序循环
|
|
33
|
+
const zhiFuIdx = constants_1.JIU_XING_ORDER.indexOf(zhiFuXing);
|
|
34
|
+
const flyOrder = constants_1.JIU_XING_ORDER.slice(zhiFuIdx).concat(constants_1.JIU_XING_ORDER.slice(0, zhiFuIdx));
|
|
35
|
+
// 3. 从参考干落宫起飞布(阳顺阴逆,宫位数字序)
|
|
36
|
+
const gongXing = {};
|
|
37
|
+
for (let i = 0; i < 9; i++) {
|
|
38
|
+
const offset = isYang ? i : -i;
|
|
39
|
+
const gong = (((shiGanLuoGong - 1 + offset) % 9) + 9) % 9 + 1;
|
|
40
|
+
gongXing[gong] = flyOrder[i];
|
|
41
|
+
}
|
|
39
42
|
return {
|
|
40
43
|
gongXing,
|
|
41
44
|
zhiFuXing,
|
|
42
45
|
zhiFuGong,
|
|
43
|
-
zhiFuLuoGong,
|
|
46
|
+
zhiFuLuoGong: shiGanLuoGong,
|
|
44
47
|
};
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
@@ -58,58 +61,10 @@ class JiuXingCalculator {
|
|
|
58
61
|
}
|
|
59
62
|
return '芮'; // 默认天芮
|
|
60
63
|
}
|
|
61
|
-
/**
|
|
62
|
-
* 飞星:从某宫开始飞布指定步数
|
|
63
|
-
*/
|
|
64
|
-
static flyXing(startGong, steps, isYang) {
|
|
65
|
-
let actualStart = startGong;
|
|
66
|
-
if (actualStart === 5) {
|
|
67
|
-
actualStart = constants_1.ZHONG_GONG_JI; // 中宫寄坤二
|
|
68
|
-
}
|
|
69
|
-
const startIdx = (0, constants_1.getLuoShuIndex)(actualStart);
|
|
70
|
-
const targetIdx = isYang
|
|
71
|
-
? (startIdx + steps) % 8
|
|
72
|
-
: ((startIdx - steps) % 8 + 8) % 8;
|
|
73
|
-
return (0, constants_1.getLuoShuGong)(targetIdx);
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* 计算所有九星的落宫
|
|
77
|
-
* 从值符星落宫开始,按洛书顺序排列其他八星
|
|
78
|
-
* 天禽星随天芮星
|
|
79
|
-
*/
|
|
80
|
-
static calculateAllXing(zhiFuXing, zhiFuLuoGong, isYang) {
|
|
81
|
-
const gongXing = {};
|
|
82
|
-
// 九星顺序(不含天禽,因为天禽随天芮)
|
|
83
|
-
const xingOrderWithoutQin = ['蓬', '芮', '冲', '辅', '心', '柱', '任', '英'];
|
|
84
|
-
// 找到值符星在顺序中的索引
|
|
85
|
-
let zhiFuIdx = xingOrderWithoutQin.indexOf(zhiFuXing);
|
|
86
|
-
if (zhiFuIdx === -1) {
|
|
87
|
-
// 如果值符星是天禽,则以天芮为准
|
|
88
|
-
zhiFuIdx = xingOrderWithoutQin.indexOf('芮');
|
|
89
|
-
}
|
|
90
|
-
// 获取值符星落宫在洛书中的索引
|
|
91
|
-
let startIdx = (0, constants_1.getLuoShuIndex)(zhiFuLuoGong === 5 ? constants_1.ZHONG_GONG_JI : zhiFuLuoGong);
|
|
92
|
-
// 依次排列八星(不含天禽)
|
|
93
|
-
for (let i = 0; i < 8; i++) {
|
|
94
|
-
const xingIdx = (zhiFuIdx + i) % 8;
|
|
95
|
-
const xing = xingOrderWithoutQin[xingIdx];
|
|
96
|
-
const gongIdx = isYang
|
|
97
|
-
? (startIdx + i) % 8
|
|
98
|
-
: ((startIdx - i) % 8 + 8) % 8;
|
|
99
|
-
const gong = (0, constants_1.getLuoShuGong)(gongIdx);
|
|
100
|
-
gongXing[gong] = xing;
|
|
101
|
-
}
|
|
102
|
-
// 天禽星寄中宫,实际显示时随天芮
|
|
103
|
-
gongXing[5] = '禽';
|
|
104
|
-
return gongXing;
|
|
105
|
-
}
|
|
106
64
|
/**
|
|
107
65
|
* 根据宫位找星
|
|
108
66
|
*/
|
|
109
67
|
static findXingByGong(gongXing, gong) {
|
|
110
|
-
if (gong === 5) {
|
|
111
|
-
return '禽';
|
|
112
|
-
}
|
|
113
68
|
return gongXing[gong];
|
|
114
69
|
}
|
|
115
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JiuXingCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuXingCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,
|
|
1
|
+
{"version":3,"file":"JiuXingCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JiuXingCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,iDAG2B;AAa3B;;;GAGG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CACd,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,yBAAyB;QACzB,MAAM,QAAQ,GAAG,0BAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,0BAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,0BAAc,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE1F,2BAA2B;QAC3B,MAAM,QAAQ,GAA6B,EAA8B,CAAC;QAC1E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC9D,QAAQ,CAAC,IAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO;YACL,QAAQ;YACR,SAAS;YACT,SAAS;YACT,YAAY,EAAE,aAAa;SAC5B,CAAC;IACJ,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,cAAc,CAAC,QAAkC,EAAE,IAAa;QACrE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;CACF;AArED,8CAqEC"}
|
|
@@ -26,13 +26,16 @@ export declare class JuShuCalculator {
|
|
|
26
26
|
static calculate(jieQi: string, dayGanZhi: string, method: ZhiRunMethod, jieQiDate?: Date, currentDate?: Date): JuShuResult;
|
|
27
27
|
/**
|
|
28
28
|
* 拆补法计算上中下元
|
|
29
|
-
*
|
|
29
|
+
* 根据日干支的符头(五日一元,元首为甲日或己日)确定上中下元
|
|
30
30
|
*
|
|
31
31
|
* 原理:
|
|
32
|
-
* -
|
|
33
|
-
* -
|
|
34
|
-
* -
|
|
35
|
-
* -
|
|
32
|
+
* - 六十甲子按五日一组,各组首日(甲/己日)为符头
|
|
33
|
+
* - 符头地支为四仲(子午卯酉)者为上元:甲子、甲午、己卯、己酉
|
|
34
|
+
* - 符头地支为四孟(寅申巳亥)者为中元:甲寅、甲申、己巳、己亥
|
|
35
|
+
* - 符头地支为四季(辰戌丑未)者为下元:甲辰、甲戌、己丑、己未
|
|
36
|
+
* - 节气内十五天被三元「拆开补齐」,故称拆补法
|
|
37
|
+
*
|
|
38
|
+
* 参照:kentang2017/kinqimen findyuen_dict(MIT)、《神奇之门》
|
|
36
39
|
*/
|
|
37
40
|
private static calculateYuanChaibu;
|
|
38
41
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JuShuCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JuShuCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,KAAK,EAAW,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQnG,MAAM,WAAW,WAAW;IAC1B,UAAU;IACV,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,IAAI,EAChB,WAAW,CAAC,EAAE,IAAI,GACjB,WAAW;IA6Bd
|
|
1
|
+
{"version":3,"file":"JuShuCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JuShuCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAkB,KAAK,EAAW,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAQnG,MAAM,WAAW,WAAW;IAC1B,UAAU;IACV,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe;IACf,KAAK,EAAE,KAAK,CAAC;IACb,WAAW;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;;;;;;OAOG;IACH,MAAM,CAAC,SAAS,CACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,SAAS,CAAC,EAAE,IAAI,EAChB,WAAW,CAAC,EAAE,IAAI,GACjB,WAAW;IA6Bd;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,MAAM,CAAC,mBAAmB;IASlC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAmBnC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI7C;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;CAGlD"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.JuShuCalculator = void 0;
|
|
8
8
|
const constants_1 = require("../data/constants");
|
|
9
|
+
const PanTypeCalculator_1 = require("./PanTypeCalculator");
|
|
9
10
|
/**
|
|
10
11
|
* 局数计算器
|
|
11
12
|
*/
|
|
@@ -45,30 +46,24 @@ class JuShuCalculator {
|
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* 拆补法计算上中下元
|
|
48
|
-
*
|
|
49
|
+
* 根据日干支的符头(五日一元,元首为甲日或己日)确定上中下元
|
|
49
50
|
*
|
|
50
51
|
* 原理:
|
|
51
|
-
* -
|
|
52
|
-
* -
|
|
53
|
-
* -
|
|
54
|
-
* -
|
|
52
|
+
* - 六十甲子按五日一组,各组首日(甲/己日)为符头
|
|
53
|
+
* - 符头地支为四仲(子午卯酉)者为上元:甲子、甲午、己卯、己酉
|
|
54
|
+
* - 符头地支为四孟(寅申巳亥)者为中元:甲寅、甲申、己巳、己亥
|
|
55
|
+
* - 符头地支为四季(辰戌丑未)者为下元:甲辰、甲戌、己丑、己未
|
|
56
|
+
* - 节气内十五天被三元「拆开补齐」,故称拆补法
|
|
57
|
+
*
|
|
58
|
+
* 参照:kentang2017/kinqimen findyuen_dict(MIT)、《神奇之门》
|
|
55
59
|
*/
|
|
56
60
|
static calculateYuanChaibu(dayGanZhi) {
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
case '甲子':
|
|
61
|
-
case '甲午':
|
|
62
|
-
return '上元';
|
|
63
|
-
case '甲戌':
|
|
64
|
-
case '甲辰':
|
|
65
|
-
return '中元';
|
|
66
|
-
case '甲申':
|
|
67
|
-
case '甲寅':
|
|
68
|
-
return '下元';
|
|
69
|
-
default:
|
|
70
|
-
return '上元';
|
|
61
|
+
const idx = constants_1.JIA_ZI_60.indexOf(dayGanZhi);
|
|
62
|
+
if (idx === -1) {
|
|
63
|
+
throw new Error(`无效的日干支: ${dayGanZhi}`);
|
|
71
64
|
}
|
|
65
|
+
const fuTou = constants_1.JIA_ZI_60[idx - (idx % 5)];
|
|
66
|
+
return PanTypeCalculator_1.DI_ZHI_YUAN_MAP[fuTou.charAt(1)];
|
|
72
67
|
}
|
|
73
68
|
/**
|
|
74
69
|
* 茅山法计算上中下元
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JuShuCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JuShuCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,
|
|
1
|
+
{"version":3,"file":"JuShuCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/JuShuCalculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 三奇六仪计算器
|
|
3
|
-
*
|
|
3
|
+
* 计算飞盘式天盘布局
|
|
4
4
|
*/
|
|
5
5
|
import type { GongWei, TianGan, YinYangDun } from '../types';
|
|
6
6
|
export interface TianPanResult {
|
|
@@ -11,37 +11,28 @@ export interface TianPanResult {
|
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* 三奇六仪计算器
|
|
14
|
-
*
|
|
14
|
+
* 负责计算飞盘式天盘布局
|
|
15
15
|
*/
|
|
16
16
|
export declare class SanQiLiuYiCalculator {
|
|
17
17
|
/**
|
|
18
|
-
*
|
|
18
|
+
* 计算飞盘式天盘布局
|
|
19
19
|
* @param diPanGanGong 地盘干->宫位映射
|
|
20
|
-
* @param
|
|
20
|
+
* @param refGanZhi 参考干支(时盘为时干支,余类推)
|
|
21
21
|
* @param yinYangDun 阴阳遁
|
|
22
22
|
* @returns 天盘各宫的干
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
* 1.
|
|
26
|
-
* 2.
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* 例如:
|
|
30
|
-
* - 阳遁一局,时干为庚
|
|
31
|
-
* - 庚在地盘震三宫
|
|
32
|
-
* - 则天盘从震三宫开始顺布:戊-震3, 己-巽4, 庚-离9...
|
|
24
|
+
* 原理(飞盘式):
|
|
25
|
+
* 1. 值符随时干:旬首六仪飞到参考干(甲用旬首仪)所在的地盘宫
|
|
26
|
+
* 2. 其余八干按 戊己庚辛壬癸丁丙乙 的循环顺序(自旬首仪起),
|
|
27
|
+
* 按宫位数字顺序(1→2→…→9→1)飞布,阳遁顺飞、阴遁逆飞
|
|
28
|
+
* 3. 落入中五宫之干寄坤二宫(查询时换算,显示时仍在中宫)
|
|
33
29
|
*/
|
|
34
|
-
static calculate(diPanGanGong: Record<TianGan, GongWei>,
|
|
30
|
+
static calculate(diPanGanGong: Record<TianGan, GongWei>, refGanZhi: string, yinYangDun: YinYangDun): TianPanResult;
|
|
35
31
|
/**
|
|
36
32
|
* 获取遁甲干
|
|
37
|
-
*
|
|
33
|
+
* 甲遁于六仪之下,需要根据干支确定
|
|
38
34
|
*/
|
|
39
35
|
private static getDunGan;
|
|
40
|
-
/**
|
|
41
|
-
* 根据起始宫位和步数计算目标宫位(9宫飞布)
|
|
42
|
-
* 洛书9宫顺序:1(坎) -> 8(艮) -> 3(震) -> 4(巽) -> 5(中) -> 9(离) -> 2(坤) -> 7(兑) -> 6(乾)
|
|
43
|
-
*/
|
|
44
|
-
private static getGongByStep;
|
|
45
36
|
/**
|
|
46
37
|
* 根据天干找天盘落宫
|
|
47
38
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SanQiLiuYiCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/SanQiLiuYiCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"SanQiLiuYiCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/SanQiLiuYiCalculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAQ7D,MAAM,WAAW,aAAa;IAC5B,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CACd,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EACtC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,aAAa;IAiChB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IASxB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO;CAI/E"}
|
|
@@ -1,50 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* 三奇六仪计算器
|
|
4
|
-
*
|
|
4
|
+
* 计算飞盘式天盘布局
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.SanQiLiuYiCalculator = void 0;
|
|
8
8
|
const constants_1 = require("../data/constants");
|
|
9
9
|
/**
|
|
10
10
|
* 三奇六仪计算器
|
|
11
|
-
*
|
|
11
|
+
* 负责计算飞盘式天盘布局
|
|
12
12
|
*/
|
|
13
13
|
class SanQiLiuYiCalculator {
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* 计算飞盘式天盘布局
|
|
16
16
|
* @param diPanGanGong 地盘干->宫位映射
|
|
17
|
-
* @param
|
|
17
|
+
* @param refGanZhi 参考干支(时盘为时干支,余类推)
|
|
18
18
|
* @param yinYangDun 阴阳遁
|
|
19
19
|
* @returns 天盘各宫的干
|
|
20
20
|
*
|
|
21
|
-
*
|
|
22
|
-
* 1.
|
|
23
|
-
* 2.
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* 例如:
|
|
27
|
-
* - 阳遁一局,时干为庚
|
|
28
|
-
* - 庚在地盘震三宫
|
|
29
|
-
* - 则天盘从震三宫开始顺布:戊-震3, 己-巽4, 庚-离9...
|
|
21
|
+
* 原理(飞盘式):
|
|
22
|
+
* 1. 值符随时干:旬首六仪飞到参考干(甲用旬首仪)所在的地盘宫
|
|
23
|
+
* 2. 其余八干按 戊己庚辛壬癸丁丙乙 的循环顺序(自旬首仪起),
|
|
24
|
+
* 按宫位数字顺序(1→2→…→9→1)飞布,阳遁顺飞、阴遁逆飞
|
|
25
|
+
* 3. 落入中五宫之干寄坤二宫(查询时换算,显示时仍在中宫)
|
|
30
26
|
*/
|
|
31
|
-
static calculate(diPanGanGong,
|
|
27
|
+
static calculate(diPanGanGong, refGanZhi, yinYangDun) {
|
|
32
28
|
const isYang = yinYangDun === '阳遁';
|
|
33
|
-
const
|
|
34
|
-
//
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
let startGong = diPanGanGong[dunGan];
|
|
29
|
+
const refGan = refGanZhi.charAt(0);
|
|
30
|
+
// 参考干对应的遁甲干(甲遁于旬首六仪之下)
|
|
31
|
+
const refDunGan = this.getDunGan(refGan, refGanZhi);
|
|
32
|
+
// 起点宫 = 参考干(遁干)在地盘的落宫(中五寄坤二)
|
|
33
|
+
let startGong = diPanGanGong[refDunGan];
|
|
39
34
|
if (startGong === 5) {
|
|
40
|
-
startGong = constants_1.ZHONG_GONG_JI;
|
|
35
|
+
startGong = constants_1.ZHONG_GONG_JI;
|
|
41
36
|
}
|
|
37
|
+
// 飞布序列:自旬首仪起,按戊己庚辛壬癸丁丙乙循环
|
|
38
|
+
const xunShou = (0, constants_1.getXunShou)(refGanZhi);
|
|
39
|
+
const fuGan = (0, constants_1.getLiuYiGan)(xunShou);
|
|
40
|
+
const fuIdx = constants_1.SAN_QI_LIU_YI.indexOf(fuGan);
|
|
41
|
+
const flyOrder = constants_1.SAN_QI_LIU_YI.slice(fuIdx).concat(constants_1.SAN_QI_LIU_YI.slice(0, fuIdx));
|
|
42
42
|
const gongGan = {};
|
|
43
43
|
const ganGong = {};
|
|
44
|
-
// 从起始宫开始,依次布入三奇六仪(9干飞布9宫)
|
|
45
44
|
for (let i = 0; i < 9; i++) {
|
|
46
|
-
const gan =
|
|
47
|
-
const
|
|
45
|
+
const gan = flyOrder[i];
|
|
46
|
+
const offset = isYang ? i : -i;
|
|
47
|
+
const gong = (((startGong - 1 + offset) % 9) + 9) % 9 + 1;
|
|
48
48
|
gongGan[gong] = gan;
|
|
49
49
|
ganGong[gan] = gong;
|
|
50
50
|
}
|
|
@@ -52,28 +52,15 @@ class SanQiLiuYiCalculator {
|
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
54
|
* 获取遁甲干
|
|
55
|
-
*
|
|
55
|
+
* 甲遁于六仪之下,需要根据干支确定
|
|
56
56
|
*/
|
|
57
|
-
static getDunGan(
|
|
58
|
-
if (
|
|
59
|
-
|
|
60
|
-
return hourGan;
|
|
57
|
+
static getDunGan(refGan, refGanZhi) {
|
|
58
|
+
if (refGan !== '甲') {
|
|
59
|
+
return refGan;
|
|
61
60
|
}
|
|
62
|
-
|
|
63
|
-
const xunShou = (0, constants_1.getXunShou)(hourGanZhi);
|
|
61
|
+
const xunShou = (0, constants_1.getXunShou)(refGanZhi);
|
|
64
62
|
return (0, constants_1.getLiuYiGan)(xunShou);
|
|
65
63
|
}
|
|
66
|
-
/**
|
|
67
|
-
* 根据起始宫位和步数计算目标宫位(9宫飞布)
|
|
68
|
-
* 洛书9宫顺序:1(坎) -> 8(艮) -> 3(震) -> 4(巽) -> 5(中) -> 9(离) -> 2(坤) -> 7(兑) -> 6(乾)
|
|
69
|
-
*/
|
|
70
|
-
static getGongByStep(startGong, steps, isYang) {
|
|
71
|
-
const startIdx = (0, constants_1.getLuoShuIndex9)(startGong);
|
|
72
|
-
const targetIdx = isYang
|
|
73
|
-
? (startIdx + steps) % 9
|
|
74
|
-
: ((startIdx - steps) % 9 + 9) % 9;
|
|
75
|
-
return (0, constants_1.getLuoShuGong9)(targetIdx);
|
|
76
|
-
}
|
|
77
64
|
/**
|
|
78
65
|
* 根据天干找天盘落宫
|
|
79
66
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SanQiLiuYiCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/SanQiLiuYiCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,
|
|
1
|
+
{"version":3,"file":"SanQiLiuYiCalculator.js","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/SanQiLiuYiCalculator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,iDAK2B;AAS3B;;;GAGG;AACH,MAAa,oBAAoB;IAC/B;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,SAAS,CACd,YAAsC,EACtC,SAAiB,EACjB,UAAsB;QAEtB,MAAM,MAAM,GAAG,UAAU,KAAK,IAAI,CAAC;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAY,CAAC;QAE9C,uBAAuB;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEpD,6BAA6B;QAC7B,IAAI,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YACpB,SAAS,GAAG,yBAAa,CAAC;QAC5B,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,SAAS,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,yBAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,yBAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,yBAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAElF,MAAM,OAAO,GAA6B,EAA8B,CAAC;QACzE,MAAM,OAAO,GAA6B,EAA8B,CAAC;QAEzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAe,CAAC,GAAG,GAAG,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,IAAe,CAAC;QACjC,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,SAAS,CAAC,MAAe,EAAE,SAAiB;QACzD,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,sBAAU,EAAC,SAAS,CAAC,CAAC;QACtC,OAAO,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;IAC9B,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,yBAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,CAAC;CACF;AAvED,oDAuEC"}
|
|
@@ -3,14 +3,18 @@
|
|
|
3
3
|
* Rotating style Qimen calculator (following《神奇之门》)
|
|
4
4
|
*
|
|
5
5
|
* 转盘式核心规则:
|
|
6
|
-
* 1.
|
|
7
|
-
* 2.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* 1. 天盘、九星、八门是三个「物理转盘」,盘内元素相对顺序恒定不变
|
|
7
|
+
* 2. 转盘环序(物理顺时针,从坎一宫起):坎→艮→震→巽→离→坤→兑→乾
|
|
8
|
+
* - 九星环序:蓬任冲辅英芮柱心(禽寄芮,随坤二宫)
|
|
9
|
+
* - 八门环序:休生伤杜景死惊开
|
|
10
|
+
* 3. 天盘干与九星同转:值符星携旬首六仪转到时干(遁干)所在的地盘宫
|
|
11
|
+
* 4. 值使门随时辰飞宫:从值符原始宫起,按旬内时辰序数,
|
|
12
|
+
* 阳遁顺数宫位数字(1→2→…→9→1)、阴遁逆数
|
|
13
|
+
* 5. 中五宫寄坤二宫;天禽随天芮
|
|
14
|
+
*
|
|
15
|
+
* 参照:《神奇之门》(张志春)、kentang2017/kinqimen pan_sky/pan_star/pan_door(MIT)
|
|
12
16
|
*/
|
|
13
|
-
import type { GongWei, TianGan,
|
|
17
|
+
import type { GongWei, TianGan, BaMen, JiuXing, YinYangDun } from '../types';
|
|
14
18
|
export interface ZhuanPanTianPanResult {
|
|
15
19
|
gongGan: Record<GongWei, TianGan>;
|
|
16
20
|
ganGong: Record<TianGan, GongWei>;
|
|
@@ -32,6 +36,11 @@ export interface ZhuanPanJiuXingResult {
|
|
|
32
36
|
* 实现《神奇之门》中的转盘式排盘法
|
|
33
37
|
*/
|
|
34
38
|
export declare class ZhuanPanCalculator {
|
|
39
|
+
/**
|
|
40
|
+
* 获取参考干(时干/日干/月干/年干)遁干后的地盘落宫
|
|
41
|
+
* 甲遁于旬首六仪之下;落中五宫者寄坤二
|
|
42
|
+
*/
|
|
43
|
+
static getShiGanLuoGong(diPanGanGong: Record<TianGan, GongWei>, ganZhi: string): GongWei;
|
|
35
44
|
/**
|
|
36
45
|
* 计算转盘式天盘布局
|
|
37
46
|
* @param diPanGanGong 地盘干->宫位映射
|
|
@@ -39,51 +48,45 @@ export declare class ZhuanPanCalculator {
|
|
|
39
48
|
* @param yinYangDun 阴阳遁
|
|
40
49
|
* @returns 天盘各宫的干
|
|
41
50
|
*
|
|
42
|
-
*
|
|
43
|
-
* 1.
|
|
44
|
-
* 2.
|
|
45
|
-
* 3.
|
|
46
|
-
* 4.
|
|
51
|
+
* 原理(转盘式刚体旋转):
|
|
52
|
+
* 1. 旬首六仪(值符所携之干)在地盘的原始宫
|
|
53
|
+
* 2. 参考干(时干等,甲用旬首仪)在地盘的落宫
|
|
54
|
+
* 3. 将整个地盘沿转盘环旋转,使旬首仪从原始宫转到参考干落宫
|
|
55
|
+
* 4. 中五宫之干寄坤二宫随盘转动;天盘中宫显示坤二宫之干
|
|
47
56
|
*/
|
|
48
57
|
static calculateTianPan(diPanGanGong: Record<TianGan, GongWei>, ganZhi: string, yinYangDun: YinYangDun): ZhuanPanTianPanResult;
|
|
49
58
|
/**
|
|
50
59
|
* 计算转盘式八门布局
|
|
51
|
-
* @param zhiFuGong
|
|
52
|
-
* @param
|
|
60
|
+
* @param zhiFuGong 值符星原始宫位(旬首遁干在地盘的宫位,值使门原始宫与其相同)
|
|
61
|
+
* @param refGanZhi 参考干支(时盘为时干支,余类推)
|
|
53
62
|
* @param yinYangDun 阴阳遁
|
|
54
63
|
* @returns 八门布局
|
|
55
64
|
*
|
|
56
65
|
* 原理(转盘式):
|
|
57
|
-
* 1.
|
|
58
|
-
* 2.
|
|
59
|
-
*
|
|
60
|
-
*
|
|
66
|
+
* 1. 值使门 = 值符星原始宫位对应的门(中五宫寄坤二取死门)
|
|
67
|
+
* 2. 值使门落宫:从值符原始宫起,按参考干支的旬内序数(甲为0),
|
|
68
|
+
* 阳遁顺数宫位数字、阴遁逆数;落中五宫寄坤二
|
|
69
|
+
* 3. 其余七门按八门环序(休生伤杜景死惊开)随盘刚体旋转
|
|
61
70
|
*/
|
|
62
|
-
static calculateBaMen(zhiFuGong: GongWei,
|
|
71
|
+
static calculateBaMen(zhiFuGong: GongWei, refGanZhi: string, yinYangDun: YinYangDun): ZhuanPanBaMenResult;
|
|
63
72
|
/**
|
|
64
73
|
* 计算转盘式九星布局
|
|
65
|
-
* @param xunShouGong
|
|
66
|
-
* @param
|
|
74
|
+
* @param xunShouGong 旬首遁干在地盘的宫位(值符星原始宫)
|
|
75
|
+
* @param shiGanLuoGong 参考干(时干等,甲用旬首仪)的地盘落宫
|
|
67
76
|
* @param yinYangDun 阴阳遁
|
|
68
77
|
* @returns 九星布局
|
|
69
78
|
*
|
|
70
79
|
* 原理(转盘式):
|
|
71
|
-
* 1.
|
|
72
|
-
* 2.
|
|
73
|
-
* 3.
|
|
74
|
-
* 4. 天禽星(中五宫)随天芮星,或寄坤二
|
|
80
|
+
* 1. 值符星 = 旬首遁干原始宫对应的星(中五宫为天禽,寄坤二随天芮)
|
|
81
|
+
* 2. 值符星随时干:转盘旋转使值符星从原始宫转到参考干落宫
|
|
82
|
+
* 3. 其余诸星按九星环序(蓬任冲辅英芮柱心)随盘刚体旋转
|
|
75
83
|
*/
|
|
76
|
-
static calculateJiuXing(xunShouGong: GongWei,
|
|
84
|
+
static calculateJiuXing(xunShouGong: GongWei, shiGanLuoGong: GongWei, yinYangDun: YinYangDun): ZhuanPanJiuXingResult;
|
|
77
85
|
/**
|
|
78
86
|
* 获取遁甲干
|
|
79
87
|
* 甲遁于六仪之下,需要根据干支确定
|
|
80
88
|
*/
|
|
81
89
|
private static getDunGan;
|
|
82
|
-
/**
|
|
83
|
-
* 根据起始宫位和步数计算目标宫位(转盘式9宫旋转)
|
|
84
|
-
* 包含中宫处理
|
|
85
|
-
*/
|
|
86
|
-
private static getGongByRotation;
|
|
87
90
|
/**
|
|
88
91
|
* 根据宫位获取原始门
|
|
89
92
|
*/
|
|
@@ -92,16 +95,6 @@ export declare class ZhuanPanCalculator {
|
|
|
92
95
|
* 根据宫位获取原始星
|
|
93
96
|
*/
|
|
94
97
|
private static getXingByGong;
|
|
95
|
-
/**
|
|
96
|
-
* 计算所有八门的落宫(转盘式)
|
|
97
|
-
* 整体按物理方向旋转
|
|
98
|
-
*/
|
|
99
|
-
private static calculateAllMenZhuanPan;
|
|
100
|
-
/**
|
|
101
|
-
* 计算所有九星的落宫(转盘式)
|
|
102
|
-
* 整体按物理方向旋转,天禽星随天芮星
|
|
103
|
-
*/
|
|
104
|
-
private static calculateAllXingZhuanPan;
|
|
105
98
|
/**
|
|
106
99
|
* 根据宫位找门
|
|
107
100
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZhuanPanCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/ZhuanPanCalculator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ZhuanPanCalculator.d.ts","sourceRoot":"","sources":["../../../../src/services/qimen/calculators/ZhuanPanCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAS,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAiBpF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChC,SAAS,EAAE,KAAK,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAUD;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CACrB,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,MAAM,GACb,OAAO;IAOV;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,gBAAgB,CACrB,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GACrB,qBAAqB;IA0CxB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,cAAc,CACnB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GACrB,mBAAmB;IAyCtB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,gBAAgB,CACrB,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,OAAO,EACtB,UAAU,EAAE,UAAU,GACrB,qBAAqB;IA+BxB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,SAAS;IAUxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IAY3B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAe5B;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,KAAK;IAI3E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO;IAOjF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO;CAI/E"}
|