← 返回卷宗
術數理論

採用角度對五行的建模

在某種意義上,可以認為兩元素之間的五行關係,其實是一個圓上的角度距離,因此如果知道了兩個元素,那麼實際上可以求取它們之間的角度,如果A與B,順時針為0~72度之間,可以認為B與A的五行關係比和,如果是72~144度之間可以認為是A生B,這樣就模擬生克循環。

這裡的難度是如何代碼化,求取兩個向量的夾角,寫成python代碼如下:

import numpy as np

def get_clockwise_rotation_angle(vector1, vector2):
    # 計算兩個向量的點積
    dot_product = np.dot(vector1, vector2)
    
    # 計算兩個向量的模
    norm_vector1 = np.linalg.norm(vector1)
    norm_vector2 = np.linalg.norm(vector2)
    
    # 計算餘弦值
    cos_theta = dot_product / (norm_vector1 * norm_vector2)
    
    # 使用反餘弦函數計算弧度值
    radians = np.arccos(cos_theta)
    
    # 將弧度值轉換為角度
    degrees = np.degrees(radians)
    
    # 使用叉積來確定旋轉方向
    cross_product = np.cross(vector1, vector2)
    
    # 如果叉積為正,調整角度為360度 - 角度
    if cross_product > 0:
        degrees = 360 - degrees
    
    return degrees

本文由 三符道長 撰於 2023年10月2日。轉載請註明出處。