to.tetramorph.starbase.util
クラス ChartAnalyzer

java.lang.Object
  上位を拡張 to.tetramorph.starbase.util.ChartAnalyzer

public class ChartAnalyzer
extends Object

天体の四大分布、カルミネイト、支配星、エレベートなどを求めるユーティリティ。


フィールドの概要
static int ANGULAR
          アンギュラー (1,4,7,10宮) を表す定数
protected  Map<Integer,Body> bodyMap
           
static int CADENT
          キャデント (3,6,9,12宮) を表す定数
static int CLASSIC_SYSTEM
           
static int MODERN_SYSTEM
           
static int SUCCEDENT
          サクシデント (2,5,8,11宮)を表す定数
 
コンストラクタの概要
ChartAnalyzer(Map<Integer,Body> bodyMap)
          ChartAnalyzer オブジェクトを作成する 解析したい天体を外部から入力してやる。
 
メソッドの概要
 Body getCulminatedPlanet()
          カルミネイトしている天体(エレベートしている惑星の中でもっともMCに近い惑星を返す。
 List<Body[]> getElementsTable()
          火,地,風,水,C,F,M,陽,陰の星座にそれぞれどんな天体(複数)が入っているかを返す。
 List<Body> getElevatedPlanets()
          エレベートしている惑星のリストを返す。
 List<Body> getHouseInPlanets(int house)
          指定したハウスに入っている惑星を抽出して返す。
 Body getHouseRuler(boolean isModern, int id)
          指定した天体のサイン、またはカスプのサインが示す支配星を返す。
 double[] getMoonFace()
          太陽と月の離角から月相(28相)を求める。
 List<Body> getPlanetsByHouseType(int type)
          アンギュラー、サクシデント、キャデント別に在泊天体(複数)を求める。
 Body getRisingPlanet()
          上昇星(AC±5度以内にある天体で、ASCに一番近い天体を返す。
 Body getRulerPlanet(boolean isModern)
          支配星(ACサインのルーラー)を返す。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

bodyMap

protected Map<Integer,Body> bodyMap

MODERN_SYSTEM

public static final int MODERN_SYSTEM
関連項目:
定数フィールド値

CLASSIC_SYSTEM

public static final int CLASSIC_SYSTEM
関連項目:
定数フィールド値

ANGULAR

public static final int ANGULAR
アンギュラー (1,4,7,10宮) を表す定数

関連項目:
定数フィールド値

SUCCEDENT

public static final int SUCCEDENT
サクシデント (2,5,8,11宮)を表す定数

関連項目:
定数フィールド値

CADENT

public static final int CADENT
キャデント (3,6,9,12宮) を表す定数

関連項目:
定数フィールド値
コンストラクタの詳細

ChartAnalyzer

public ChartAnalyzer(Map<Integer,Body> bodyMap)
ChartAnalyzer オブジェクトを作成する 解析したい天体を外部から入力してやる。 <天体ID, Body>という構造で、天体をハッシュマップに入れたものを引数として 与える。この時、モダン式なら十惑星とAC,MCが入っていればいいし、古典式 なら七惑星とAC,MCが入っていればいい。

メソッドの詳細

getHouseInPlanets

public List<Body> getHouseInPlanets(int house)
指定したハウスに入っている惑星を抽出して返す。小惑星も惑星と判断して抽出 するが、AC,MC,ノードなど実体のない感受点はカウントしない。

パラメータ:
house - ハウス番号

getElementsTable

public List<Body[]> getElementsTable()
火,地,風,水,C,F,M,陽,陰の星座にそれぞれどんな天体(複数)が入っているかを返す。
 List#get(0〜3) 火,地,風,水の順で天体(Body)の配列が返る。
 List#get(4〜6) C,F,Mの順で天体リスト
 List#get(7〜8) 陽,陰の天体リスト
 


getRisingPlanet

public Body getRisingPlanet()
上昇星(AC±5度以内にある天体で、ASCに一番近い天体を返す。 ACが見つからないときはnullを返す。 ただし対象となるのは太陽から冥王星までのいずれか。


getRulerPlanet

public Body getRulerPlanet(boolean isModern)
支配星(ACサインのルーラー)を返す。 ACが見つからないときはnullを返す。

パラメータ:
isModern - モダン式の支配星(つまり外惑星が支配星になる事がある)を 求めるときはtrueを指定する。古典式ならfalseを指定する。

getHouseRuler

public Body getHouseRuler(boolean isModern,
                          int id)
指定した天体のサイン、またはカスプのサインが示す支配星を返す。

パラメータ:
isModernモダン式の支配星(つまり外惑星が支配星になる事がある)を - 求めるときはtrueを指定する。古典式ならfalseを指定する。
id - 天体またはカスプのID。Const.Cusp1,Const.SUN等。
戻り値:
支配星に該当する天体。
例外:
古典システム(isModern==false)で、idに外惑星を指定したとき。 - 惑星(太陽〜冥王星)、カスプ(CUSP1〜CUSP12)以外をidに指定したとき。

getMoonFace

public double[] getMoonFace()
太陽と月の離角から月相(28相)を求める。 値はdouble[]で返り、[0]は月相、[1]には離角。[0]はかならず整数0-27。


getElevatedPlanets

public List<Body> getElevatedPlanets()
エレベートしている惑星のリストを返す。 ACが検出できないときはサイズ0のリストを返す。 7室から12室にある惑星のリストを返すということ。 一つもないときは戻り値のlist.size()が0を返す。 ※このメソッドはちょい怪しい。部屋番号はスイスエフェメリスで求まっているのに なぜこんなやり方で求めようとする?古い実装だ。


getCulminatedPlanet

public Body getCulminatedPlanet()
カルミネイトしている天体(エレベートしている惑星の中でもっともMCに近い惑星を返す。 存在しないときはnullを返す。 ※これもgetElevatedPlanets()を呼ぶので同様に妖しい


getPlanetsByHouseType

public List<Body> getPlanetsByHouseType(int type)
アンギュラー、サクシデント、キャデント別に在泊天体(複数)を求める。

パラメータ:
type - ANGULAR,SUCCEDENT,CADENTの三種類を指定できる。