Esempio n. 1
0
        public double Euklid(Aerodrom a)
        {
            double disX = this.kord.Item1 - a.kord.Item1;
            double disY = this.kord.Item2 - a.kord.Item2;

            return(Math.Sqrt(disX * disX + disY * disY));
        }
Esempio n. 2
0
        public double Rastojanje(Aerodrom a) //vraca rastojanje u kilometrima
        {
            double R        = 6400;          //aproksimacija da je Zemlja lopta poluprecnika 6400km
            double thisRad1 = this.kord.Item1 / (2 * Math.PI);
            double thisRad2 = this.kord.Item2 / (2 * Math.PI);
            double rad1     = a.kord.Item1;
            double rad2     = a.kord.Item2;

            if (rad1 == thisRad1 && rad2 == thisRad2)
            {
                return(0);
            }

            double thisZ = R * Math.Sin(thisRad2);
            double thisX = R * Math.Cos(thisRad2) * Math.Sin(thisRad1);
            double thisY = R * Math.Cos(thisRad2) * Math.Cos(thisRad1);
            double Z     = R * Math.Sin(rad2);
            double X     = R * Math.Cos(rad2) * Math.Sin(rad1);
            double Y     = R * Math.Cos(rad2) * Math.Cos(rad1);

            double EuclidDis = Math.Sqrt((X - thisX) * (X - thisX) + (Y - thisY) * (Y - thisY) + (Z - thisZ) * (Z - thisZ));

            double sin_HalfAlpha = EuclidDis / (2 * R);
            double cos_HalfAlpha = Math.Sqrt(1 - sin_HalfAlpha * sin_HalfAlpha);
            double sin_Alpha     = 2 * sin_HalfAlpha * cos_HalfAlpha;

            double Alpha = Math.Asin(sin_Alpha);

            return(R * Alpha);
        }
Esempio n. 3
0
        /*public Aerodrom(string imeAerodroma, Tuple<double,double> kord)
         * {
         *  this.imeAerodroma = imeAerodroma;
         *  this.kord = kord;
         *  this.parkingM = null;
         *  this.cenaPoGejtu = 1;
         * }*/

        public Aerodrom(Aerodrom a)
        {
            this.imeAerodroma = a.imeAerodroma;
            this.parkingM     = a.parkingM;
            this.kord         = a.kord;
            this.cenaPoGejtu  = a.cenaPoGejtu;
        }
 public AvionskaLinija(Aerodrom poc, Aerodrom kr, int r, int b, int[,] ras)
 {
     pocetniAerodrom   = poc;
     krajnjiAerodrom   = kr;
     razdaljina        = r;
     letovi            = new List <Let>();
     prosecanbrputnika = b;
     int [,] raspored  = new int[ras.GetLength(0), ras.GetLength(1)];
     for (int i = 0; i < ras.GetLength(0); i++)
     {
         for (int j = 0; j < ras.GetLength(1); j++)
         {
             raspored[i, j] = ras[i, j];
         }
     }
 }
 public AvionskaLinija(AvionskaLinija al)
 {
     pocetniAerodrom   = al.pocetniAerodrom;
     krajnjiAerodrom   = al.krajnjiAerodrom;
     razdaljina        = al.razdaljina;
     letovi            = new List <Let>();
     prosecanbrputnika = al.prosecanbrputnika;
     int[,] raspored   = new int[al.raspored.GetLength(0), al.raspored.GetLength(1)];
     for (int i = 0; i < al.raspored.GetLength(0); i++)
     {
         for (int j = 0; j < al.raspored.GetLength(1); j++)
         {
             raspored[i, j] = al.raspored[i, j];
         }
     }
 }
Esempio n. 6
0
        public double Ugao(Aerodrom b)
        {
            if (b.kord.Item1 == this.kord.Item1)
            {
                if (b.kord.Item2 > this.kord.Item2)
                {
                    return(0);
                }
                else if (b.kord.Item2 == this.kord.Item2)
                {
                    return(-1);
                }
                else
                {
                    return(Math.PI);
                }
            }

            double disAB             = Euklid(b);
            Tuple <double, double> c = new Tuple <double, double>(this.kord.Item1, this.kord.Item2 + disAB);

            double disBC         = b.Euklid(c);
            double sin_HalfAlpha = disBC / (2 * disAB);
            double cos_HalfAlpha = Math.Sqrt(1 - sin_HalfAlpha * sin_HalfAlpha);
            double sin_Alpha     = 2 * sin_HalfAlpha * cos_HalfAlpha;
            double Alpha         = Math.Asin(sin_Alpha);

            if (this.kord.Item1 < b.kord.Item1)
            {
                return(Alpha);
            }
            else
            {
                return(2 * Math.PI - Alpha);
            }
        }
Esempio n. 7
0
 public ParkingMesto(ParkingMesto p)
 {
     dimenzije  = p.dimenzije;
     CenaPoSatu = p.CenaPoSatu;
     this.a     = p.a;
 }
Esempio n. 8
0
 public ParkingMesto(Dimenzije d, int c, Aerodrom a)
 {
     dimenzije  = d;
     CenaPoSatu = c;
     this.a     = a;
 }
        private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //provera da li su aerodromi dobro izabrani
            int dosad = 0;

            for (int i = 0; i < checkedListBox1.Items.Count; i++)
            {
                CheckState st = checkedListBox1.GetItemCheckState(checkedListBox1.Items.IndexOf(i));
                if (st == CheckState.Checked)
                {
                    if (dosad >= 2)
                    {
                        drom_ok = false;
                    }
                    else
                    {
                        drom_ind[dosad] = i;
                        dosad++;
                    }
                }
            }

            if (!drom_ok)
            {
                duzinaPuta.Text   = "";
                validSve.Text     = "Ne";
                trajanjeLeta.Text = "";
                return;
            }

            for (int i = 0; i < Form1.aerodromi.Count; i++)
            {
                if (Form1.aerodromi[i].ImeAerodroma == checkedListBox1.Items[drom_ind[0]])
                {
                    izabDrom[0] = new Aerodrom(Form1.aerodromi[i]);
                }
                if (Form1.aerodromi[i].ImeAerodroma == checkedListBox1.Items[drom_ind[1]])
                {
                    izabDrom[1] = new Aerodrom(Form1.aerodromi[i]);
                }
            }

            int duzPut = (int)(izabDrom[0].Rastojanje(izabDrom[1]));

            duzinaPuta.Text = duzPut.toString();
            if (!avioni_ok)
            {
                validSve.Text     = "Ne";
                trajanjeLeta.Text = "";
                return;
            }

            int duzina1 = (int)(duzPut / izabAvioni[0].Brzina);
            int duzina2 = (int)(duzPut / izabAvioni[1].Brzina);
            int duzina  = (duzina1 + duzina2) / 2;

            if (duzina == 0)
            {
                duzina = 1;
            }
            trajanjeLeta.Text = duzina.ToString();
            validSve.Text     = "Da";
        }
Esempio n. 10
0
 public double Rastojanje(Aerodrom a)
 {
     return(Math.Sqrt((kord.Item1 - a.kord.Item1) * (kord.Item1 - a.kord.Item1) + (kord.Item2 - a.kord.Item2) * (kord.Item2 - a.kord.Item2)));
 }