易经八卦,

在易经中,我们用—表示阳;--表示阴;
在计算机中, 用0表示--,1表示—;

两爻组合得到 太阳, 太阴, 少阳, 少阴, 在计算机中, 分别用11,00,10,01表示

三爻组合, 得到八卦, 乾、兑、离、震、巽、坎、艮、坤, 分别用111,110,101......001,000表示

两个八卦, 上下组合成64卦, 乾111111, 履110111...艮000001, 坤000000;

占卦, 得到一个本卦, 通过计算机计算, 很轻松得到 错卦(按位异或),互卦,综卦,杂卦;
根据每爻变化, 很简单得到变卦.
计算机对识别 初六,初九, 上六,上九,以及六二, 六三,六四, 可以保存为数组;

在计算机中,需要打印八卦以及六十四卦 图,
需要安装Yijing Symbols.ttf字体;
如: 坤 ䷁ 或䷁ 乾 ䷀ 或 ䷀

<style>
        @font-face{
			font-family: "Yijing Symbols";
			src:url("Yijing Symbols.ttf");
		}
		body {
            font-family: "Yijing Symbols";
        }
    </style>
</head>

  

见图:

 

 

  

/**
* 6位二进制数,取反, 011001->100110
**/
function cuoGua($data = ''){
	// 根据异或长度计算匹配的数值
	$numberLen = strlen($data);
	$xorValue = (1 << $numberLen) - 1; // 计算 2^$numberLen - 1  6位63
	
	// 二进制到十进制
	$decNumber = bindec($data);

    // 进行按位异或运算
    $resultXor = $decNumber ^ $xorValue;
    // 补0
    $result = str_pad(decbin($resultXor), $numberLen, '0', STR_PAD_LEFT);
	return $result; // 返回十进制结果
}

function zongGua($data = ''){
	$data = str_split($data);
	$xinArr = array(
		$data[5],
		$data[4],
		$data[3],
		$data[2],
		$data[1],
		$data[0],
	);
	return implode('', $xinArr);
}

function zaGua($data = ''){
	$data = str_split($data);
	$xinArr = array(
		$data[3],
		$data[4],
		$data[5],
		$data[0],
		$data[1],
		$data[2],
	);
	return implode('', $xinArr);
}

function huGua($data = ''){
	$data = str_split($data);
	$xinArr = array(
		$data[1],
		$data[2],
		$data[3],
		$data[2],
		$data[3],
		$data[4],
	);
	return implode('', $xinArr);
}

function yaoName($data = ''){
	$configArr = array(
		'06' => '初六',
		'16' => '六二',
		'26' => '六三',
		'36' => '六四',
		'46' => '六五',
		'56' => '上六',
		'09' => '初九',
		'19' => '九二',
		'29' => '九三',
		'39' => '九四',
		'49' => '九五',
		'59' => '上九',
	);
	$data = str_split($data);
	foreach($data as $key => $val){
		if($val > 0){
			$result[$key] = $configArr[$key.'9'];
		}else{
			$result[$key] = $configArr[$key.'6'];
		}
		
	}
	return $result;
}

function bianGua($data = '', $yao = 1){
	$xinArr = str_split($data);
	($xinArr[$yao-1] > 0)?$xinArr[$yao-1]=0:$xinArr[$yao-1]=1;
	return implode('', $xinArr);
}

  

posted @ 2024-11-12 13:17  钢锅  阅读(2)  评论(0编辑  收藏  举报