コード例 #1
0
ファイル: GrahaBala.php プロジェクト: mykitty/jyotish
 /**
  * Constructor
  * 
  * @param \Jyotish\Base\Data $Data
  */
 public function __construct(\Jyotish\Base\Data $Data)
 {
     parent::__construct($Data);
     $this->balaGraha = Graha::listGraha(Graha::LIST_SAPTA);
     $this->bala['total'] = [];
     foreach ($this->balaVarga as $varga) {
         $balaVarga = 'bala' . ucfirst($varga);
         $this->bala[$varga] = $this->{$balaVarga}();
         $this->bala['total'] = Math::arraySum($this->bala[$varga], $this->bala['total']);
     }
 }
コード例 #2
0
ファイル: BhavaEnvironment.php プロジェクト: mykitty/jyotish
 /**
  * Get tatkalika mitra. Planets 3 houses away on either sides adjacent to it 
  * are its tatkalika mitra (temporary friend) and render considerable strength.
  * 
  * @return array
  */
 public function getTatkalikaMitra($withoutChaya = true)
 {
     $mitraBhava = [-4, -3, -2, 1, 2, 3];
     foreach ($mitraBhava as $distance) {
         $rashi = Math::numberInCycle($this->objectRashi, $distance);
         $mitraRashi[$rashi] = $distance;
     }
     $listOption = $withoutChaya ? Graha::LIST_SAPTA : Graha::LIST_NAVA;
     $grahas = Graha::listGraha($listOption);
     foreach ($grahas as $key => $name) {
         $rashi = $this->getEnvironment()['graha'][$key]['rashi'];
         if (array_key_exists($rashi, $mitraRashi)) {
             $mitraGraha[$key] = $mitraRashi[$rashi];
         }
     }
     return $mitraGraha;
 }
コード例 #3
0
ファイル: Parivarthana.php プロジェクト: mykitty/jyotish
 /**
  * Generate list of Parivarthana yogas.
  * 
  * @return \Iterator
  * @see Mantreswara. Phaladeepika. Chapter 6, Verse 32.
  */
 public function generateYoga()
 {
     $saptaGraha = Graha::listGraha(Graha::LIST_SAPTA);
     foreach ($saptaGraha as $key1 => $name1) {
         $grahaChecked[] = $key1;
         foreach ($saptaGraha as $key2 => $name2) {
             if (in_array($key2, $grahaChecked)) {
                 continue;
             }
             if ($subtype = $this->hasParivarthana($key1, $key2)) {
                 $result = ['graha1' => $key1, 'graha2' => $key2];
                 if ($this->options['outputAmple']) {
                     $result = array_merge($result, ['subtype' => $subtype]);
                 }
                 (yield $result);
             }
         }
     }
 }
コード例 #4
0
ファイル: Renderer.php プロジェクト: mykitty/jyotish
 /**
  * Return body label.
  * 
  * @param string $body
  * @param array $options
  * @return string
  */
 protected function getBodyLabel($body, array $options)
 {
     switch ($options['labelGrahaType']) {
         case 0:
             $label = $body;
             break;
         case 1:
             if (array_key_exists($body, Graha::$graha)) {
                 $grahaObject = Graha::getInstance($body);
                 $label = Utility::unicodeToHtml($grahaObject->grahaUnicode);
             } else {
                 $label = $body;
             }
             break;
         case 2:
             $label = call_user_func($options['labelGrahaCallback'], $body);
             break;
         default:
             $label = $body;
             break;
     }
     $data = $this->Data->getData();
     if (array_key_exists($body, Graha::listGraha(Graha::LIST_SAPTA))) {
         $vakraCheshta = $data['graha'][$body]['speed'] < 0 ? true : false;
     } else {
         $vakraCheshta = false;
     }
     $grahaLabel = $vakraCheshta ? '(' . $label . ')' : $label;
     return $grahaLabel;
 }
コード例 #5
0
ファイル: Hora.php プロジェクト: mykitty/jyotish
 /**
  * Get lord of hora.
  * 
  * @param int $horaNumber Number of hora
  * @param int $varaKey Key of vara
  * @return string
  */
 public static function getLord($horaNumber, $varaKey)
 {
     $lords = Math::shiftArray(Graha::listGraha(Graha::LIST_CHESHTA), $varaKey);
     $lordsKeys = array_keys($lords);
     $numLord = Math::numberInCycle(1, $horaNumber, 7) - 1;
     return $lordsKeys[$numLord];
 }
コード例 #6
0
ファイル: GrahaEnvironment.php プロジェクト: kunjara/jyotish
 /**
  * Determine if the graha is in planetary war.
  * 
  * @return null|bool|array
  * @see Surya Siddhanta. Chapter 7, Verse 18-23.
  * @see Varahamihira. Brihat Samhita. Chapter 17.
  * @todo Determine who the winner and loser
  */
 public function isYuddha()
 {
     if (in_array($this->objectKey, [Graha::KEY_SY, Graha::KEY_CH, Graha::KEY_RA, Graha::KEY_KE])) {
         return null;
     }
     $lonGraha = $this->getEnvironment()['graha'][$this->objectKey]['longitude'];
     $grahas = Graha::listGraha(Graha::LIST_PANCHA);
     $isYuddha = false;
     foreach ($grahas as $key => $name) {
         if ($key == $this->objectKey) {
             continue;
         }
         $distance = abs($lonGraha - $this->getEnvironment()['graha'][$key]['longitude']);
         if ($distance <= 1) {
             $isYuddha[$key] = $distance;
         }
     }
     return $isYuddha;
 }
コード例 #7
0
ファイル: YogaBase.php プロジェクト: kunjara/jyotish
 /**
  * Is there Mahapurusha yoga for the graha.
  * 
  * @param string $key Key of graha.
  * @return bool
  * @throws Exception\InvalidArgumentException
  * @see Maharishi Parashara. Brihat Parashara Hora Shastra. Chapter 75, Verse 1-2.
  * @see Mantreswara. Phaladeepika. Chapter 6, Verse 1.
  */
 public function hasMahapurusha($key)
 {
     $panchaGraha = Graha::listGraha(Graha::LIST_PANCHA);
     if (!array_key_exists($key, $panchaGraha)) {
         throw new \Jyotish\Yoga\Exception\InvalidArgumentException("For {$key} Mahapurusha yoga is not available.");
     }
     $Graha = Graha::getInstance($key);
     $Graha->setEnvironment($this->Data);
     $grahaBhava = $Graha->getBhava();
     $grahaAvastha = $Graha->getRashiAvastha();
     if (in_array($grahaBhava, Bhava::$bhavaKendra) && in_array($grahaAvastha, [Rashi::GRAHA_UCHA, Rashi::GRAHA_MOOL, Rashi::GRAHA_SWA])) {
         return true;
     } else {
         return false;
     }
 }