Beispiel #1
0
    //kadzalik2020
    //Menentukan GST dari UT
    public static int [] UtKeGst(double julianday, int zonawaktu)
    {
        /* Saya nggak tau alurnya gimana, tapi entah kenapa kodenya berhasil
         * jadi. kalau error silahkan dicari sendiri ya ...hehehe*/
        double pukuljd_0_UT   = (julianday % 1 - 0.5) * 24;
        double UT             = pukuljd_0_UT - zonawaktu;
        double julianday_0_UT = ((int)julianday) + 0.5;
        double T        = (julianday_0_UT - 2451545) / 36525;
        double GST_0_UT = 6.6973745583 + 2400.0513369072 * T + 0.0000258622 * T * T;

        //Fungsi MODULO
        while (GST_0_UT > 24)
        {
            GST_0_UT -= 24;
        }                                   //Bila nilai Positif lebih dari 24, akan dikurang 24 terus menerus sampai nilai dibawah 24
        while (GST_0_UT < 0)
        {
            GST_0_UT += 24;
        }                                             //Bila nilai negatif, akan ditambah 24 terus menerus sampai positif

        double GST_UT = GST_0_UT + 1.0027379035 * UT; //nilai sidereal time pada pukul UT

        if (GST_UT >= 24)
        {
            GST_UT -= 24;
        }

        int[] GST_sexagesimal = Konversi.DesimalKeDerajat(GST_UT);
        return(new int [] { 0, GST_sexagesimal[1], GST_sexagesimal[2], GST_sexagesimal[3] });
    }
Beispiel #2
0
    public static int [] GstKeUt(double julianday, double jam_gst, double menit_gst, double detik_gst)
    {
        double julianday_0_UT = ((int)julianday) + 0.5;
        double pukul_desimal  = Konversi.DerajatKeDesimal(jam_gst, menit_gst, detik_gst);
        double T        = (julianday_0_UT - 2451545) / 36525;
        double GST_0_UT = 6.6973745583 + 2400.0513369072 * T + 0.0000258622 * T * T;

        double UT_GST = pukul_desimal - GST_0_UT;

        //Fungsi MODULO
        while (UT_GST > 24)
        {
            UT_GST -= 24;
        }                               //Bila nilai Positif lebih dari 24, akan dikurang 24 terus menerus sampai nilai dibawah 24
        while (UT_GST < 0)
        {
            UT_GST += 24;
        }                              //Bila nilai negatif, akan ditambah 24 terus menerus sampai positif
        UT_GST = UT_GST / 1.00273790935;

        int[] UT_sexagesimal = Konversi.DesimalKeDerajat(UT_GST);
        return(new int[] { 0, UT_sexagesimal[1], UT_sexagesimal[2], UT_sexagesimal[3] });
    }
Beispiel #3
0
    // Update is called once per frame
    public void Update()
    {
        Vector2 syakul   = Syakul.transform.position;
        Vector2 awalQous = Markaz.transform.position;
        Vector2 dir      = awalQous - syakul;

        angle = (Mathf.Atan2(dir.y, -dir.x) * Mathf.Rad2Deg);
        string nilai;//Qous

        //mencari nilai sinus dari angle
        float  nilaiSittini = Mathf.Abs(Mathf.Cos(angle * Mathf.Deg2Rad));
        string sittini;

        float  nilaiJaibT = Mathf.Abs(Mathf.Sin(angle * Mathf.Deg2Rad));
        string JaibT;


        float posisiSitini = -200.872f * nilaiSittini;//200.294 adalah nilai batas wilayah rubuk dalam app ini
        float posisiJaibT  = -200.872f * nilaiJaibT;


        if (angle < 0)//apabila melebihi wilayah rubuk maka disetel maks (90)

        {
            nilai   = 90 + "\u00B0 " + "00" + "\u2032  ";
            sittini = 60 + "\u00B0 " + "00" + "\u2032  ";
            JaibT   = "00" + "\u00B0 " + "00" + "\u2032  ";


            Anchor.localEulerAngles = new Vector3(0, 0, -90);
            TitikSittini.transform.localPosition = new Vector3(-200.294f, 10f, 0);//menentukan posisi titik sittini
            TitikJaibT.transform.localPosition   = new Vector3(10f, 0, 0);
        }
        else
        {
            if (angle >= 90.0f)//apabila nggak melebihi wilayah rubuk
            //Qous
            {
                int derajat = Konversi.DesimalKeDerajat(angle % 90)[1];
                int menit   = Konversi.DesimalKeDerajat(angle % 90)[2];
                nilai = derajat.ToString("D2") + "\u00B0 " + menit.ToString("D2") + "\u2032  ";

                //Sittini
                int derajatSt = Konversi.DesimalKeDerajat(nilaiSittini * 60)[1];
                int menitSt   = Konversi.DesimalKeDerajat(nilaiSittini * 60)[2];
                sittini = derajatSt.ToString("D2") + "\u00B0" + menitSt.ToString("D2") + "\u2032";

                //Jaib T
                int derajatJt = Konversi.DesimalKeDerajat(nilaiJaibT * 60)[1];
                int menitJt   = Konversi.DesimalKeDerajat(nilaiJaibT * 60)[2];
                JaibT = derajatJt.ToString("D2") + "\u00B0" + menitJt.ToString("D2") + "\u2032";

                Anchor.localEulerAngles = new Vector3(0, 0, -(angle - 90));                   //memutar pasak

                TitikSittini.transform.localPosition = new Vector3(posisiSitini, 10f, -0.2f); //menentukan posisi titik sittini
                TitikJaibT.transform.localPosition   = new Vector3(10f, posisiJaibT, -0.2f);
            }
            else
            {//apabila kurang dar wilayah rubuk maka disetel minimalnilai (0)
                nilai   = "00" + "\u00B0" + "00" + "\u2032 ";
                sittini = "00" + "\u00B0 " + "00" + "\u2032  ";
                JaibT   = "60" + "\u00B0 " + "00" + "\u2032  ";
                Anchor.localEulerAngles = new Vector3(0, 0, 0);
                TitikSittini.transform.localPosition = new Vector3(0, 10f, 0);//menentukan posisi titik sittini
                TitikJaibT.transform.localPosition   = new Vector3(10f, -200.872f, 0);
            }
        }
        text.text        = "Qous : " + nilai;
        textSittini.text = "Sittini: " + sittini;
        textJaibT.text   = "Jaib T: " + JaibT;
    }
Beispiel #4
0
    private float angle;                //sudut antara Syakul dan Markaz


    public void Update()
    {
//ambil nilai dari user
        float nilaiInput = (float)Konversi.DerajatKeDesimal(double.Parse(nilaiDerajat.text), double.Parse(nilaiMenit.text), 0);


        Vector2 syakul   = Syakul.transform.position;
        Vector2 awalQous = Markaz.transform.position;
        Vector2 dir      = awalQous - syakul;//menghitung vectornya dari Markaz dikurangi syakul, supaya Origin sudutnya berada pada Markaz

        angle = (Mathf.Atan2(dir.y, -dir.x) * Mathf.Rad2Deg);

        if (nilaiInput > 60)
        {
            nilaiInput %= 60;
        }

        float nilaiSittini  = Mathf.Sin(angle % 90 * Mathf.Deg2Rad) * nilaiInput / 60;
        float nilaiJaibT    = Mathf.Cos(angle % 90 * Mathf.Deg2Rad) * nilaiInput / 60;
        float angleMuri     = (Mathf.Asin(nilaiSittini) * Mathf.Rad2Deg);
        float OousInputMuri = (Mathf.Asin(nilaiInput / 60) * Mathf.Rad2Deg);



        nilaiInput /= 60;
        float posisiMuri = -49.49f * nilaiInput;//-49.49f adalah nilai vector y batas daerah jaib T rubuk

        Muri.transform.localPosition = new Vector3(0, posisiMuri, 0f);


        float posisiMuriS = -200.872f * nilaiSittini;

        float posisiMuriJ = -200.872f * nilaiJaibT;



        string nilai;


        string nilaiMuriS;


        string nilaiMuriT;



        if (angle < 0)
        {
            if (angleMuri == 0)
            {
                TitikQousMuri.localEulerAngles = new Vector3(0, 0, -OousInputMuri);
            }
            else
            {
                TitikQousMuri.localEulerAngles = new Vector3(0, 0, angleMuri);
            }

            MuriSittini.transform.localPosition = new Vector3(-200.872f * nilaiInput, 10f, 0);
            MuriJaibT.transform.localPosition   = new Vector3(10f, 0, 0);

            int derajat = Konversi.DesimalKeDerajat(angleMuri % 90)[1];
            int menit   = Konversi.DesimalKeDerajat(angleMuri % 90)[2];
            nilai = derajat.ToString("D2") + "\u00B0 " + menit.ToString("D2") + "\u2032  ";

            int derajatS = Konversi.DesimalKeDerajat(nilaiInput * 60)[1];
            int menitS   = Konversi.DesimalKeDerajat(nilaiInput * 60)[2];
            nilaiMuriS = derajatS.ToString("D2") + "\u00B0 " + menitS.ToString("D2") + "\u2032  ";

            nilaiMuriT = "00" + "\u00B0 " + "00" + "\u2032";
        }
        else
        {
            if (angle >= 90.0f)
            {
                TitikQousMuri.localEulerAngles = new Vector3(0, 0, -angleMuri);
                Debug.Log(-angleMuri + "");
                MuriSittini.transform.localPosition = new Vector3(posisiMuriS, 10f, 0);
                MuriJaibT.transform.localPosition   = new Vector3(10f, posisiMuriJ, 0);

                int derajat = Konversi.DesimalKeDerajat(angleMuri % 90)[1];
                int menit   = Konversi.DesimalKeDerajat(angleMuri % 90)[2];
                nilai = derajat.ToString("D2") + "\u00B0 " + menit.ToString("D2") + "\u2032  ";

                int derajatS = Konversi.DesimalKeDerajat(nilaiSittini * 60)[1];
                int menitS   = Konversi.DesimalKeDerajat(nilaiSittini * 60)[2];
                nilaiMuriS = derajatS.ToString("D2") + "\u00B0 " + menitS.ToString("D2") + "\u2032  ";

                int derajatT = Konversi.DesimalKeDerajat(nilaiJaibT * 60)[1];
                int menitT   = Konversi.DesimalKeDerajat(nilaiJaibT * 60)[2];
                nilaiMuriT = derajatT.ToString("D2") + "\u00B0 " + menitT.ToString("D2") + "\u2032  ";
            }
            else
            {
                TitikQousMuri.localEulerAngles      = new Vector3(0, 0, 0);
                MuriSittini.transform.localPosition = new Vector3(0, 10f, 0);
                MuriJaibT.transform.localPosition   = new Vector3(10f, -200.872f * nilaiInput, 0);

                nilai      = "00" + "\u00B0 " + "00" + "\u2032";
                nilaiMuriS = "00" + "\u00B0 " + "00" + "\u2032";
                int derajatJ = Konversi.DesimalKeDerajat(nilaiInput * 60)[1];
                int menitJ   = Konversi.DesimalKeDerajat(nilaiInput * 60)[2];
                nilaiMuriT = derajatJ.ToString("D2") + "\u00B0 " + menitJ.ToString("D2") + "\u2032  ";
            }
        }

        TextQousMuri.text = "Qous Muri:" + "\n" + nilai + "\n\n" + "Sittini Muri:" + "\n" + nilaiMuriS + "\n\n" + "Jaib T Muri:" + "\n" + nilaiMuriT;



//Debug.Log("Sitini  "+nilaiSittini+"\n"+"JaibT   :" +nilaiJaibT+" Sudut   :" +(-angleMuri));
    }