Ejemplo n.º 1
0
        public int[] getSavRao()
        {
            int[] sav = new int[12] {
                0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
            };

            ZodiacHouse zl = h.getPosition(Body.Name.Lagna).toDivisionPosition(this.dtype).zodiac_house;

            foreach (Body.Name b in getBodies())
            {
                int[] pav = this.getPav(b);
                Debug.Assert(pav.Length == 12, "Internal error: Pav didn't have 12 entries");

                ZodiacHouse zb = h.getPosition(b).toDivisionPosition(this.dtype).zodiac_house;

                for (int i = 0; i < 12; i++)
                {
                    ZodiacHouse zi   = new ZodiacHouse((ZodiacHouse.Name)i + 1);
                    int         rasi = zb.numHousesBetween(zi);
                    rasi           = (int)zl.add(rasi).value;
                    sav[rasi - 1] += pav[i];
                }
            }
            return(sav);
        }
Ejemplo n.º 2
0
        private bool checkJhd(string fileName)
        {
            HoraInfo  info = (new Jhd(fileName)).toHoraInfo();
            Horoscope h    = new Horoscope(info, new HoroscopeOptions());

            if (h.getPosition(Body.Name.Ketu).toDivisionPosition(new Division(Basics.DivisionType.Rasi)).zodiac_house.value ==
                h.getPosition(Body.Name.Lagna).toDivisionPosition(new Division(Basics.DivisionType.Rasi)).zodiac_house.value)
            {
                return(true);
            }

            return(false);
        }
Ejemplo n.º 3
0
        private void PopulateOptionsInit(Division dtype)
        {
            DivisionPosition dp       = h.getPosition(mBody).toDivisionPosition(this.dtypeRasi);
            Longitude        foundLon = new Longitude(0);
            bool             bForward = true;

            ut_lower  = cs.TransitSearch(mBody, h.info.tob, false, new Longitude(dp.cusp_lower), foundLon, ref bForward);
            ut_higher = cs.TransitSearch(mBody, h.info.tob, true, new Longitude(dp.cusp_higher), foundLon, ref bForward);


            double ut_span = (ut_higher - ut_lower) / (double)Basics.numPartsInDivision(dtype) * 5.0;
            double ut_curr = h.baseUT;

            ut_lower  = ut_curr - (ut_span / 2.0);
            ut_higher = ut_curr + (ut_span / 2.0);

            //double ut_extra = (ut_higher-ut_lower)*(1.0/3.0);
            //ut_lower -= ut_extra;
            //ut_higher += ut_extra;


            //ut_lower = h.baseUT - 1.0/24.0;
            //ut_higher = h.baseUT + 1.0/24.0;
            this.opts = new UserOptions(this.utToMoment(ut_lower), this.utToMoment(ut_higher), dtype);
        }
Ejemplo n.º 4
0
        public double ucchaBala(Body.Name b)
        {
            this.verifyGraha(b);
            Longitude debLon = Body.debilitationDegree(b);
            Longitude posLon = h.getPosition(b).longitude;
            double    diff   = posLon.sub(debLon).value;

            if (diff > 180)
            {
                diff = 360 - diff;
            }
            return((diff / 180.0) * 60.0);
        }
Ejemplo n.º 5
0
        public void OnRecalculate(Object o)
        {
            Division dtype = new Division(Basics.DivisionType.Rasi);

            BodyPosition l1 = h.getPosition(Body.Name.Lagna);
            BodyPosition l2 = h2.getPosition(Body.Name.Lagna);
            BodyPosition m1 = h.getPosition(Body.Name.Moon);
            BodyPosition m2 = h2.getPosition(Body.Name.Moon);
            ZodiacHouse  z1 = m1.toDivisionPosition(dtype).zodiac_house;
            ZodiacHouse  z2 = m2.toDivisionPosition(dtype).zodiac_house;
            Nakshatra    n1 = m1.longitude.toNakshatra();
            Nakshatra    n2 = m2.longitude.toNakshatra();

            this.lView.Items.Clear();

            {
                ListViewItem li = new ListViewItem("Nakshatra Yoni");
                li.SubItems.Add(KutaNakshatraYoni.getType(n1).ToString()
                                + " (" + KutaNakshatraYoni.getSex(n1).ToString() + ")");
                li.SubItems.Add(KutaNakshatraYoni.getType(n2).ToString()
                                + " (" + KutaNakshatraYoni.getSex(n2).ToString() + ")");
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Rasi Yoni");
                li.SubItems.Add(KutaRasiYoni.getType(z1).ToString());
                li.SubItems.Add(KutaRasiYoni.getType(z2).ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Varna");
                li.SubItems.Add(KutaVarna.getType(n1).ToString());
                li.SubItems.Add(KutaVarna.getType(n2).ToString());
                li.SubItems.Add(KutaVarna.getScore(n1, n2).ToString() + "/" + KutaVarna.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Gana (Chandra)");
                li.SubItems.Add(KutaGana.getType(n1).ToString());
                li.SubItems.Add(KutaGana.getType(n2).ToString());
                li.SubItems.Add(KutaGana.getScore(n1, n2).ToString() + "/" + KutaGana.getMaxScore().ToString());

                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Gana (Lagna)");
                li.SubItems.Add(KutaGana.getType(l1.longitude.toNakshatra()).ToString());
                li.SubItems.Add(KutaGana.getType(l2.longitude.toNakshatra()).ToString());
                li.SubItems.Add(KutaGana.getScore(l1.longitude.toNakshatra(), l2.longitude.toNakshatra()).ToString()
                                + "/" + KutaGana.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Vedha");
                li.SubItems.Add(KutaVedha.getType(n1).ToString());
                li.SubItems.Add(KutaVedha.getType(n2).ToString());
                li.SubItems.Add(KutaVedha.getScore(n1, n2).ToString() + "/" + KutaVedha.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Rajju");
                li.SubItems.Add(KutaRajju.getType(n1).ToString());
                li.SubItems.Add(KutaRajju.getType(n2).ToString());
                li.SubItems.Add(KutaRajju.getScore(n1, n2).ToString() + "/" + KutaRajju.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Nadi");
                li.SubItems.Add(KutaNadi.getType(n1).ToString());
                li.SubItems.Add(KutaNadi.getType(n2).ToString());
                li.SubItems.Add(KutaNadi.getScore(n1, n2).ToString() + "/" + KutaNadi.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Gotra (TD:Abhi)");
                li.SubItems.Add(KutaGotra.getType(n1).ToString());
                li.SubItems.Add(KutaGotra.getType(n2).ToString());
                li.SubItems.Add(KutaGotra.getScore(n1, n2).ToString() + "/" + KutaGotra.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Vihanga");
                li.SubItems.Add(KutaVihanga.getType(n1).ToString());
                li.SubItems.Add(KutaVihanga.getType(n2).ToString());
                li.SubItems.Add(KutaVihanga.getDominator(n1, n2).ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li = new ListViewItem("Bhuta (Nakshatra)");
                li.SubItems.Add(KutaBhutaNakshatra.getType(n1).ToString());
                li.SubItems.Add(KutaBhutaNakshatra.getType(n2).ToString());
                li.SubItems.Add(KutaBhutaNakshatra.getScore(n1, n2).ToString() + "/" + KutaBhutaNakshatra.getMaxScore().ToString());
                lView.Items.Add(li);
            }
            {
                ListViewItem li        = new ListViewItem("Ghataka (Moon)");
                ZodiacHouse  ja        = h.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                ZodiacHouse  ch        = h2.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                bool         isGhataka = GhatakaMoon.checkGhataka(ja, ch);
                li.SubItems.Add(ja.ToString());
                li.SubItems.Add(ch.ToString());
                li.SubItems.Add(getGhatakaString(isGhataka));
                lView.Items.Add(li);
            }
            {
                ListViewItem li        = new ListViewItem("Ghataka (Tithi)");
                ZodiacHouse  ja        = h.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                Longitude    ltithi    = h2.getPosition(Body.Name.Moon).longitude.sub(h2.getPosition(Body.Name.Sun).longitude);
                Tithi        t         = ltithi.toTithi();
                bool         isGhataka = GhatakaTithi.checkTithi(ja, t);
                li.SubItems.Add(ja.ToString());
                li.SubItems.Add(t.ToString());
                li.SubItems.Add(getGhatakaString(isGhataka));
                lView.Items.Add(li);
            }
            {
                ListViewItem   li        = new ListViewItem("Ghataka (Day)");
                ZodiacHouse    ja        = h.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                Basics.Weekday wd        = h2.wday;
                bool           isGhataka = GhatakaDay.checkDay(ja, wd);
                li.SubItems.Add(ja.ToString());
                li.SubItems.Add(wd.ToString());
                li.SubItems.Add(getGhatakaString(isGhataka));
                lView.Items.Add(li);
            }
            {
                ListViewItem li        = new ListViewItem("Ghataka (Star)");
                ZodiacHouse  ja        = h.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                Nakshatra    na        = h2.getPosition(Body.Name.Moon).longitude.toNakshatra();
                bool         isGhataka = GhatakaStar.checkStar(ja, na);
                li.SubItems.Add(ja.ToString());
                li.SubItems.Add(na.ToString());
                li.SubItems.Add(getGhatakaString(isGhataka));
                lView.Items.Add(li);
            }
            {
                ListViewItem li        = new ListViewItem("Ghataka Lagna(S)");
                ZodiacHouse  ja        = h.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                ZodiacHouse  sa        = h2.getPosition(Body.Name.Lagna).toDivisionPosition(dtype).zodiac_house;
                bool         isGhataka = GhatakaLagnaSame.checkLagna(ja, sa);
                li.SubItems.Add(ja.ToString());
                li.SubItems.Add(sa.ToString());
                li.SubItems.Add(getGhatakaString(isGhataka));
                lView.Items.Add(li);
            }
            {
                ListViewItem li        = new ListViewItem("Ghataka Lagna(O)");
                ZodiacHouse  ja        = h.getPosition(Body.Name.Moon).toDivisionPosition(dtype).zodiac_house;
                ZodiacHouse  op        = h2.getPosition(Body.Name.Lagna).toDivisionPosition(dtype).zodiac_house;
                bool         isGhataka = GhatakaLagnaOpp.checkLagna(ja, op);
                li.SubItems.Add(ja.ToString());
                li.SubItems.Add(op.ToString());
                li.SubItems.Add(getGhatakaString(isGhataka));
                lView.Items.Add(li);
            }
            this.ColorAndFontRows(this.lView);
        }
Ejemplo n.º 6
0
 public FindYogas(Horoscope _h, Division __dtype)
 {
     h       = _h;
     _dtype  = __dtype;
     zhLagna = h.getPosition(Body.Name.Lagna).toDivisionPosition(_dtype).zodiac_house;
 }
Ejemplo n.º 7
0
        private void PrintCoverPage(PrintPageEventArgs e)
        {
            g = e.Graphics;

            left  = e.MarginBounds.Left;
            top   = e.MarginBounds.Top;
            width = e.MarginBounds.Width;



            DivisionalChart dc_rasi = new DivisionalChart(h);

            dc_rasi.PrintMode = true;

            DivisionalChart dc_nav = new DivisionalChart(h);

            dc_nav.options.Varga = new Division(Basics.DivisionType.Navamsa);
            dc_nav.PrintMode     = true;
            dc_nav.SetOptions(dc_nav.options);

            // Rasi & Navamsa charts
            g.TranslateTransform(left, top);
            dc_rasi.DrawChart(g, width / 2, width / 2);
            g.ResetTransform();
            g.TranslateTransform(left + (width / 2), top);
            dc_nav.DrawChart(g, width / 2, width / 2);
            top += (width / 2) + pad_height;

            // Birth Details
            this.PrintString(string.Format("{0} {1}. {2}. {3}, {4}.",
                                           h.wday, h.info.tob, h.info.tz, h.info.lat, h.info.lon));

            // Tithi
            Longitude ltithi = h.getPosition(Body.Name.Moon).longitude.sub(h.getPosition(Body.Name.Sun).longitude);
            double    offset = (360.0 / 30.0) - ltithi.toTithiOffset();
            Tithi     ti     = ltithi.toTithi();

            this.PrintString(String.Format("Tithi: {0} {1:N}% left", ti.value, offset / 12.0 * 100));

            // Nakshatra
            Longitude lmoon = h.getPosition(Body.Name.Moon).longitude;
            Nakshatra nmoon = lmoon.toNakshatra();

            offset = (360.0 / 27.0) - lmoon.toNakshatraOffset();
            int pada = lmoon.toNakshatraPada();

            this.PrintString(String.Format("Nakshatra: {0} {1}  {2:N}% left",
                                           nmoon.value, pada, offset / (360.0 / 27.0) * 100));

            // Yoga, Hora
            Longitude   smLon  = h.getPosition(Body.Name.Sun).longitude.add(h.getPosition(Body.Name.Moon).longitude);
            SunMoonYoga smYoga = smLon.toSunMoonYoga();

            Body.Name bHora = h.calculateHora();
            this.PrintString(string.Format("{0} Yoga, {1} Hora", smYoga.value, bHora));



            top += pad_height;

            // Calculation Details
            foreach (BodyPosition bp in h.positionList)
            {
                switch (bp.type)
                {
                case BodyType.Name.Graha:
                case BodyType.Name.Lagna:
                case BodyType.Name.SpecialLagna:
                case BodyType.Name.Upagraha:
                    this.PrintBody(bp);
                    break;
                }
            }

            top  = e.MarginBounds.Top + (width / 2) + pad_height + f.Height;
            left = e.MarginBounds.Left + (width / 2);
            // Vimsottari Dasa
            VimsottariDasa vd = new VimsottariDasa(h);

            vd.options.SeedBody = VimsottariDasa.UserOptions.StartBodyType.Moon;
            this.PrintVimDasa(vd);
        }