Astrology Chart 2 是一套以 JavaScript 撰寫、API 簡潔且零相依的占星盤繪製函式庫,專門用來產生占星圖盤。
這個函式庫只負責把你已經準備好的資料畫成圖表,不會計算行星在宇宙中的實際位置,因此通常會搭配你自己的星曆或後端資料來源一起使用。
版本:0.7.3(alpha)
- 純 JavaScript 實作,無額外執行相依
- 採用 OOP 風格 API
- 使用 SVG 輸出,方便縮放與後續加工
- 內建測試
- 設定項完整,可高度自訂
這是 AstroChart 的更新版,以較新的 JavaScript 語法與重新設計的 API 全面重寫。
如有問題、想法或使用情境,歡迎前往 Discussions 討論;若是錯誤回報,請建立 Issue。
- 本命盤範例:示範如何以最少程式碼繪製單一本命盤。
- 流運盤範例:示範本命盤與流運盤疊合顯示。
- 同頁多圖範例:示範同一頁同時產生多張不同設定的圖盤。
- 點位碰撞半徑範例:比較點位密集時不同碰撞半徑的排版效果。
- 符號縮放範例:示範如何調整星體與星座符號字級。
- 線稿模式範例:示範只輸出線稿,方便雷射切割或 CNC 加工。
- 符號校正頁:用來檢查與校正字型符號位置。
- 本命盤相位範例:示範手動繪製本命盤相位與列出相位資料。
- 流運盤相位範例:示範流運盤相位繪製與結果列表。
- 動畫:尚未完成。
最基本的使用流程如下:
- 在頁面中建立一個要放置圖盤的容器元素。
- 載入
dist/astrochart2.js。 - 準備
points與cusps資料。 - 建立
Universe,再選擇radix()或transit()並呼叫setData()。
<script src="../dist/astrochart2.js"></script>
<script>
new astrology.Universe('paper').radix().setData(data)
</script>{
"points":[{name:"Moon", angle:0}, {name:"Sun", angle:30}, {name:"Mercury", angle:60}, ... ],
"cusps":[{angle:300}, {angle:340}, {angle:30}, {angle:60}, {angle:75}, {angle:90}, {angle:116}, {angle:172}, {angle:210}, {angle:236}, {angle:250}, {angle:274}]
}Point(點位)
{
name:{String},
angle:{Number},
[isRetrograde]:{Boolean=false}
}Cusp(宮位)
{
angle:{Number}
}- 所在星座內的角度
- 逆行標記
- 廟旺陷落資訊(r:守護/廟、d:失勢、e:旺、f:陷)
Sun、Moon、Mercury、Venus、Earth、Mars、Jupiter、Saturn、Uranus、Neptune、Pluto、Chiron、Lilith、NNode、SNode。
可前往 settings 查看所有設定常數。
const settings = { RADIX_POINTS_FONT_SIZE: 24 };
const chart = new astrology.Universe('paper', settings);注意:所有設定鍵名皆為大寫。
- 此函式庫的預設命名空間為
astrology - 若要更改,可調整 webpack output.library
感謝 Roberto Corona 的成果,讓專案可以移除原本直接寫在 SVGPath 的符號,改用這套字型來呈現: 原始 SVGPath 符號實作
npm run testnpm run doc- 建置並發布公開的占星 API 伺服器(Ephemetris)
- 建立一套結合新觀念與現代操作方式的開源占星應用
- 設計可協助解讀占星盤的電腦系統
