星盘里的几何关系
相位指的是从地球观察时,行星之间的特定角距离。
对开发者来说,理解这些角度很重要,因为它们定义了星盘中的关系,也就是不同行星能量如何相互作用。
FreeAstroAPI 如何计算 aspects
API 引擎会计算每颗行星的 geocentric longitude,范围是 0° 到 360°,然后计算两颗行星之间的绝对角度差。
角度本身还不够。我们还会应用 Orb。Orb 是允许相位仍然被认为有效的误差范围。
例如,Square 的精确角度是 90°。如果 Sun 在 88°,Moon 在 180°,差值是 92°。在 orb 为 5° 时,这仍然是有效的 Square。
数据结构
调用 /api/v1/natal/calculate 时,aspects 数组会返回这样的对象:
{
"p1": "Sun",
"p2": "Moon",
"type": "Square",
"orb": 5.5,
"deg": 92.1,
"is_major": true
}字段说明
p1和p2:参与相位的两个天体。type:相位名称。deg:两颗行星之间的精确角度。orb:相位的误差或紧密程度。越低越强。is_major:是否为主要相位。
主要相位速查
| Aspect | Angle | Orb (Default) | Meaning |
|---|---|---|---|
| Conjunction | 0° | 8-10° | 融合、强度、新开始。 |
| Opposition | 180° | 8-10° | 张力、意识、需要平衡。 |
| Trine | 120° | 8° | 和谐、流动、自然天赋。 |
| Square | 90° | 8° | 行动、挑战、摩擦。 |
| Sextile | 60° | 6° | 机会、沟通。 |
可视化 aspects
如果你绘制圆形星盘,相位通常画成连接星盘中心行星的线。
- Blue Lines:通常表示柔和相位,如 Trine、Sextile。
- Red Lines:通常表示紧张相位,如 Square、Opposition。
// Example: Determining line color based on aspect type
const getLineColor = (aspectType: string) => {
switch (aspectType) {
case 'Trine':
case 'Sextile':
return '#4F46E5'; // Indigo/Blue
case 'Square':
case 'Opposition':
return '#EF4444'; // Red
case 'Conjunction':
return '#F59E0B'; // Amber
default:
return '#9CA3AF'; // Grey
}
};结论
Aspects 会让占星应用更有层次。它们不只是说明行星落在哪个星座,还描述一个人生命主题中的动态关系。使用 FreeAstroAPI 预先计算好的 aspects 数组,你可以跳过复杂几何计算,把精力放在界面和解释体验上。