大黒学会からのお知らせ

大黒学会は、大黒学という神学の一分野についての研究機関です。

八軸神の位置を求めるプログラムを書いてみました

大黒曼荼羅を描くときに、八軸神のそれぞれを描くべき位置を求めるPythonのプログラムを書いてみました。

import sys
from math import *

def daikoku(radius, lettersize):
    eight = ['稲荷', '釈迦', '弁財天', '基督', 
             '聖母', '弥勒', '西王母', '戎']
    pi4 = pi / 4
    theta = pi / 8 * 3
    for i in range(8):
        god = eight[i]
        x = cos(theta) * radius - lettersize / 2
        y = sin(theta) * radius - lettersize * len(god) / 2
        signx = '' if x >= 0 else '-'
        signy = '' if y >= 0 else '-'
        sx = (signx + str(int(abs(x))) + '.' + 
             str(int(abs(x)*10%10)))
        sy = (signy + str(int(abs(y))) + '.' + 
             str(int(abs(y)*10%10)))
        print(god + ': ' + sx + ', ' + sy)
        theta -= pi4

if len(sys.argv) == 3:
    radius = float(sys.argv[1])
    lettersize = float(sys.argv[2])
    daikoku(radius, lettersize)
else:
    print('Usage: python daikoku.py radius lettersize')

このプログラムは、コマンドライン引数の1個目として八軸神が形成する正八角形に外接する円の半径を、2個目として八軸神の文字の大きさ(正方形の一辺の長さ)を受け取って、円の中心を原点とする座標系で、八軸神の左下の位置の座標を出力します。

たとえば、円の半径として100、文字の大きさとして10を渡して、このプログラムを実行すると、次のようなものを出力します。

稲荷: 33.2, 82.3
釈迦: 87.3, 28.2
弁財天: 87.3, -53.2
基督: 33.2, -102.3
聖母: -43.2, -102.3
弥勒: -97.3, -48.2
西王母: -97.3, 23.2
戎: -43.2, 87.3