php实现廿八星宿定位

发布时间 2023-12-10 13:00:36作者: 周了个易

七政四余排盘会涉及到二十八星宿定位问题,实现代码如下。

private function LiangtianMa()
        {
            #region 刻度
            $bi=360/365.24219;
            $lenthArray=array(
            0,
            16*60*$bi,// 奎度、
            12*60*$bi,// 娄度、
            14*60*$bi,// 胃度、
            11*60*$bi,// 昴度、
            16*60*$bi,// 毕度、
            2*60*$bi,// 觜度、
            9*60*$bi,// 参度;
            33*60*$bi,// 井度、
            4*60*$bi,// 鬼度、
            15*60*$bi,// 柳度、
            7*60*$bi,// 星度、
            18*60*$bi,// 张度、
            18*60*$bi,// 翼度、
            17*60*$bi,// 轸度
            12*60*$bi,// 角度、
            9*60*$bi,// 亢度、
            15*60*$bi,// 氐度 
            5*60*$bi,// 房度、
            5*60*$bi,// 心度、
            18*60*$bi,// 尾度、
            11*60*$bi,// 箕度;
            26.24219*60*$bi,// 斗度、
            8*60*$bi,// 牛度、
            12*60*$bi,// 女度、
            10*60*$bi,// 虚度、
            17*60*$bi,// 危度、
            16*60*$bi,// 室度、
            9*60*$bi,// 壁度
            );
            #endreg
            
            #region 名字
            $nameArray=array(
            '',
            '奎','娄','胃','昴','毕','觜','参',
            '井','鬼','柳','星','张','翼','轸',
            '角','亢','氐','房','心','尾','箕',
            '斗','牛','女','虚','危','室','壁');
            $zhuArray=array(
                '水','木','金','土','日','月','火','水'
            );
            #endregion
            //位移
            $juedui=60*23+34.18;
            for($i=1;$i<count($lenthArray);$i++)
            {
                $lenth=$lenthArray[$i];
                $juedui+=$lenthArray[$i-1];
                if($juedui>=360*60)
                {
                    $juedui-=360*60;
                }
                $endJuedui=$juedui+$lenth;
                if($endJuedui>=360*60)
                {
                    $endJuedui-=360*60;
                }
                $this->Liangtianchi[$i]=array(
                    'Name'=>$nameArray[$i],
                    'Master'=>$zhuArray[$i%7],
                    'Length'=>$lenth,
                    'Start_JueduiFen'=>$juedui,
                    'End_JueduiFen'=>$endJuedui
                );
            }
        }