采用角度对五行的建模

采用角度对五行的建模

在某种意义上,可以认为两元素之间的五行关系,其实是一个圆上的角度距离,因此如果知道了两个元素,那么实际上可以求取它们之间的角度,如果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
三符风云涌

Leave a Reply