fix: support composite native vargas
This commit is contained in:
+14
-2
@@ -3,7 +3,7 @@
|
||||
"""
|
||||
吠陀占星分盘计算模块 v1.0
|
||||
BPHS Shodasavarga(十六分盘体系)
|
||||
支持: D2/D3/D4/D5/D6/D7/D8/D9/D10/D11/D12/D16/D20/D24/D27/D30/D40/D45/D60/D144
|
||||
支持: D2/D3/D4/D5/D6/D7/D8/D9/D10/D11/D12/D16/D20/D24/D27/D30/D40/D45/D60/D81/D108/D144
|
||||
每个分盘输出精确度数,支持进一步分析。
|
||||
"""
|
||||
from typing import Dict, List, Optional
|
||||
@@ -31,6 +31,8 @@ VARGA_META = {
|
||||
27:{'name':'Bhamsa','cn':'力量','area':'力量弱点'},30:{'name':'Trimsamsa','cn':'苦难','area':'灾难苦难'},
|
||||
40:{'name':'Khavedamsa','cn':'运势','area':'吉凶运势'},45:{'name':'Akshavedamsa','cn':'格局','area':'整体格局'},
|
||||
60:{'name':'Shashtyamsa','cn':'业力','area':'前世业力同盘区分'},
|
||||
81:{'name':'Navamsa-Navamsa','cn':'D9之D9','area':'配偶灵性精微层'},
|
||||
108:{'name':'Dwadasamsa-Navamsa','cn':'D12之D9','area':'祖先父母精微层'},
|
||||
144:{'name':'Dwadasamsa-Dwadasamsa','cn':'D12之D12','area':'父母祖先精微层'}}
|
||||
|
||||
def _si(lon): return int(lon/30)%12
|
||||
@@ -87,6 +89,16 @@ def varga_map(si, pi, div):
|
||||
if div==40: return ((0 if o else 6)+pi)%12
|
||||
if div==45: return ((0 if o else 6)+pi)%12
|
||||
if div==60: return (si+pi)%12 if o else (si+1+pi)%12
|
||||
if div==81:
|
||||
outer_part = pi // 9
|
||||
inner_part = pi % 9
|
||||
outer_sign = varga_map(si, outer_part, 9)
|
||||
return varga_map(outer_sign, inner_part, 9)
|
||||
if div==108:
|
||||
outer_part = pi // 12
|
||||
inner_part = pi % 12
|
||||
outer_sign = varga_map(si, outer_part, 9)
|
||||
return varga_map(outer_sign, inner_part, 12)
|
||||
if div==144:
|
||||
outer_part = pi // 12
|
||||
inner_part = pi % 12
|
||||
@@ -255,7 +267,7 @@ def dignity(planet, sign_idx):
|
||||
def calc_all_vargas(planet_lons, asc_lon, divisions=None, mode='classical_local'):
|
||||
"""批量计算所有指定分盘"""
|
||||
if divisions is None:
|
||||
divisions=[2,3,4,5,6,7,8,9,10,11,12,16,20,24,27,30,40,45,60,144]
|
||||
divisions=[2,3,4,5,6,7,8,9,10,11,12,16,20,24,27,30,40,45,60,81,108,144]
|
||||
results={}
|
||||
for div in divisions:
|
||||
m=VARGA_META.get(div,{})
|
||||
|
||||
Reference in New Issue
Block a user