Exemple #1
0
 /// <summary>
 /// Baca exception kada je vrijednost azimuta (smjernog kuta, direkcionog ugla) veca/jednaka od 2*PI ili manja od nule
 /// </summary>
 /// <param name="izmjereniAzimut">Azimut (smjerni kut, direkcioni ugao) izmjeren na terenu</param>
 protected void exceptionOdNulaDo2PI(IRadian izmjereniAzimut)
 {
     if (izmjereniAzimut.ToRadians().Angle < 0 || izmjereniAzimut.ToRadians().Angle >= 2 * Math.PI)
     {
         throw new ArgumentOutOfRangeException("izmjereniAzimut", izmjereniAzimut, "Mjerenje mora biti izmedu 0 < mjerenje < 2*PI");
     }
 }
Exemple #2
0
 /// <summary>
 /// Baca exception kada je vrijednost pravca veca od 2*PI ili manja od nule
 /// </summary>
 /// <param name="izmjereniPravac">Duzina izmjerena na terenu</param>
 protected void exceptionOdNulaDo2PI(IRadian izmjereniPravac)
 {
     if (izmjereniPravac.ToRadians() < 0 || izmjereniPravac.ToRadians() >= 2 * Math.PI)
     {
         throw new ArgumentOutOfRangeException("izmjereniPravac ili orijentacija", izmjereniPravac, "Mjerenje mora biti izmedu 0 <= mjerenje < 2*PI");
     }
 }
Exemple #3
0
        /// <summary>
        /// <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerena dva pravca i smjernih kuta (direkcionih ugla) izracunatih iz koordinata
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="Od">Tocka prve vizure koja cini kut (lijevi pravac)</param>
        /// <param name="VizuraOd">Pravac izmjeren na terenu prema prvoj tocki</param>
        /// <param name="Do">Tocka druge vizure koja cini kut (desni pravac)</param>
        /// <param name="VizuraDo">Pravac izmjeren na terenu prema drugoj tocki</param>
        ///  <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste</exception>
        /// <exception cref="ArgumentOutOfRangeException">Baca se kada mjereni pravac nije u intervalu od 0 do 2*PI</exception>
        public KutSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija Od, IRadian VizuraOd, ITockaProjekcija Do, IRadian VizuraDo)
        {
            exceptionIsteKoordinateTocke(stajaliste, Od);
            exceptionIsteKoordinateTocke(stajaliste, Do);
            exceptionIsteKoordinateTocke(Do, Od);
            exceptionOdNulaDo2PI(VizuraOd);
            exceptionOdNulaDo2PI(VizuraDo);

            f = slobodanClan(stajaliste, Od, VizuraOd, Do, VizuraDo);
        }
Exemple #4
0
        /// <summary>
        ///     <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerena dva pravca i smjernih kuta (direkcionih ugla) izracunatih iz koordinata
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="Od">Tocka prve vizure koja cini kut (lijevi pravac)</param>
        /// <param name="VizuraOd">Pravac izmjeren na terenu prema prvoj tocki</param>
        /// <param name="Do">Tocka druge vizure koja cini kut (desni pravac)</param>
        /// <param name="VizuraDo">Pravac izmjeren na terenu prema drugoj tocki</param>
        /// <param name="tolerancija">Vrijednost od koje slobodan clan mora biti manji (tolerancija na velike grube greske)</param>
        /// <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste</exception>
        /// <exception cref="ArgumentOutOfRangeException">Baca se kada mjereni pravac nije u intervalu od 0 do 2*PI</exception>
        public KutSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija Od, IRadian VizuraOd, ITockaProjekcija Do, IRadian VizuraDo, IRadian tolerancija)
        {
            exceptionIsteKoordinateTocke(stajaliste, Od);
            exceptionIsteKoordinateTocke(stajaliste, Do);
            exceptionIsteKoordinateTocke(Do, Od);
            exceptionOdNulaDo2PI(VizuraOd);
            exceptionOdNulaDo2PI(VizuraDo);

            f = slobodanClan(stajaliste, Od, VizuraOd, Do, VizuraDo);
            tolerancijaZadovoljena = provjeraTolerancije(f.Angle, tolerancija.ToRadians().Angle);
        }
Exemple #5
0
 /// <summary>
 /// Vraca kosekans kuta
 /// </summary>
 /// <returns>double</returns>
 public static double Csc(IRadian kut)
 {
     return(1 / (Math.Sin(kut.ToRadians().Angle)));
 }
Exemple #6
0
 /// <summary>
 /// Vraca kosekans kuta
 /// </summary>
 /// <returns>double</returns>
 public static double Sec(IRadian kut)
 {
     return(1 / (Math.Cos(kut.ToRadians().Angle)));
 }
Exemple #7
0
 /// <summary>
 /// Vraca Kotangens kuta
 /// </summary>
 /// <returns>double</returns>
 public static double Cot(IRadian kut)
 {
     return(1 / Math.Tan(kut.ToRadians().Angle));
 }
Exemple #8
0
        /// <summary>
        /// <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerenog pravca i orijentacije i smjernog kuta (direkcionog ugla) izracunatog iz koordinata
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="vizura">Tocka vizure instrumenta</param>
        /// <param name="izmjereniPravac">Pravac izmjeren na terenu</param>
        /// <param name="orijentacija">Pravac orijentacije (nule) limba</param>
        /// <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste</exception>
        /// <exception cref="ArgumentOutOfRangeException">Baca se kada mjereni pravac nije u intervalu od 0 do 2*PI</exception>
        public PravacSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, IRadian izmjereniPravac, IRadian orijentacija)
        {
            exceptionIsteKoordinateTocke(stajaliste, vizura);
            exceptionOdNulaDo2PI(izmjereniPravac);
            exceptionOdNulaDo2PI(orijentacija);

            f = slobodanClan(stajaliste, vizura, izmjereniPravac, orijentacija);
        }
Exemple #9
0
 /// <summary>
 /// Izracunava slobodan clan
 /// </summary>
 /// <param name="stajaliste">Tocka stajalista instrumenta</param>
 /// <param name="vizura">Tocka vizure instrumenta</param>
 /// <param name="izmjereniPravac">Pravac izmjeren na terenu</param>
 /// <param name="orijentacija">Pravac orijentacije (nule) limba</param>
 /// <param name="tolerancija">Tolerancija kada je izmjereni pravac plus orijentacija blizu 2 PI, ali je manji</param>
 /// <returns>Radians</returns>
 private Radians slobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, IRadian izmjereniPravac, IRadian orijentacija, IRadian tolerancija)
 {
     if ((orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura)) - izmjereniPravac.ToRadians() > 2 * Math.PI - tolerancija.ToRadians())
     {
         return(new Radians((orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura) - izmjereniPravac.ToRadians() - 2 * Math.PI)));
     }
     else
     {
         return(orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura) - izmjereniPravac.ToRadians());
     }
 }
Exemple #10
0
        /// <summary>
        /// Izracunava slobodan clan
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="vizura">Tocka vizure instrumenta</param>
        /// <param name="izmjereniPravac">Pravac izmjeren na terenu</param>
        /// <param name="orijentacija">Pravac orijentacije (nule) limba</param>
        /// <returns>Rad</returns>
        private Radians slobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, IRadian izmjereniPravac, IRadian orijentacija)
        {
            if ((orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura)) - izmjereniPravac.ToRadians() > new Radians(3 * Math.PI / 2))
            {
                return(new Radians((orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura) - izmjereniPravac.ToRadians() - 2 * Math.PI)));
            }
            else if (((orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura)) - izmjereniPravac.ToRadians()).Angle < -3 * Math.PI / 2)
            {
                return(new Radians((orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura) - izmjereniPravac.ToRadians() + 2 * Math.PI)));
            }

            return(orijentacija.ToRadians() + stajaliste.SmjerniKut(vizura) - izmjereniPravac.ToRadians());
        }
Exemple #11
0
        /// <summary>
        ///     <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerenog pravca i orijentacije i smjernog kuta (direkcionog ugla) izracunatog iz koordinata
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="vizura">Tocka vizure instrumenta</param>
        /// <param name="izmjereniPravac">Pravac izmjeren na terenu</param>
        /// <param name="orijentacija">Pravac orijentacije (nule) limba</param>
        /// <param name="tolerancija">Vrijednost od koje slobodan clan mora biti manji (tolerancija na velike grube greske)</param>
        /// <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste</exception>
        /// <exception cref="ArgumentOutOfRangeException">Baca se kada mjereni pravac nije u intervalu od 0 do 2*PI</exception>
        public PravacSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, IRadian izmjereniPravac, IRadian orijentacija, IRadian tolerancija)
        {
            exceptionIsteKoordinateTocke(stajaliste, vizura);
            exceptionOdNulaDo2PI(izmjereniPravac);
            exceptionOdNulaDo2PI(orijentacija);

            f = slobodanClan(stajaliste, vizura, izmjereniPravac, orijentacija);
            tolerancijaZadovoljena = provjeraTolerancije(f.Angle, tolerancija.ToRadians().Angle);
        }
Exemple #12
0
        /// <summary>
        ///     <para/>Inicijalizira novu instancu klase Geodezija.MetodaNajmanjihKvadrata.SlobodanClanKut
        ///     <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerenog kuta i smjernih kuta (direkcionih ugla) izracunatih iz koordinata
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="Od">Tocka prve vizure koja cini kut (lijevi pravac)</param>
        /// <param name="Do">Tocka druge vizure koja cini kut (desni pravac)</param>
        /// <param name="izmjereniKut">izmjereni kut</param>
        /// <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste</exception>
        /// <exception cref="ArgumentOutOfRangeException">Baca se kada mjereni kut nije u intervalu od 0 do 2*PI</exception>
        public KutSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija Od, ITockaProjekcija Do, IRadian izmjereniKut)
        {
            exceptionIsteKoordinateTocke(stajaliste, Od);
            exceptionIsteKoordinateTocke(stajaliste, Do);
            exceptionIsteKoordinateTocke(Do, Od);
            exceptionOdNulaDo2PI(izmjereniKut);

            Radians koordinate = stajaliste.SmjerniKut(Do) - stajaliste.SmjerniKut(Od);

            if (koordinate < 0)
            {
                koordinate = koordinate + 2 * Math.PI;
            }

            f = koordinate - izmjereniKut.ToRadians();
        }
Exemple #13
0
        /// <summary>
        /// Izracunava slobodan clan (prikraceno mjerenje) kuta
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="Od">Tocka prve vizure (Od) </param>
        /// <param name="VizuraOd">Pravac vizure prema prvoj tocki</param>
        /// <param name="Do">Tocka druge vizure(Do)</param>
        /// <param name="VizuraDo">Pravac vizure prema drugoj tocki</param>
        /// <returns>Radians</returns>
        private Radians slobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija Od, IRadian VizuraOd, ITockaProjekcija Do, IRadian VizuraDo)
        {
            Radians koordinate = stajaliste.SmjerniKut(Do) - stajaliste.SmjerniKut(Od);

            if (koordinate < 0)
            {
                koordinate = koordinate + 2 * Math.PI;
            }

            Radians mjerenje = VizuraDo.ToRadians() - VizuraOd.ToRadians();

            if (mjerenje < 0)
            {
                mjerenje = mjerenje + 2 * Math.PI;
            }

            return(koordinate - mjerenje);
        }
Exemple #14
0
        /// <summary>
        ///     <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerenog azimuta i azimuta izracunatog iz koordinata
        /// </summary>
        /// <param name="stajaliste">Tocka stajalista instrumenta</param>
        /// <param name="vizura">Tocka vizure instrumenta</param>
        /// <param name="izmjereniAzimut">Azimut (smjerni kut, direkcioni ugao) izmjeren na terenu</param>
        /// <param name="tolerancija">Vrijednost od koje slobodan clan mora biti manji (tolerancija na velike grube greske)</param>
        /// <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste</exception>
        /// <exception cref="ArgumentOutOfRangeException">Baca se kada mjereni azimut nije u intervalu od 0 do 2*PI</exception>
        public AzimutSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, IRadian izmjereniAzimut, IRadian tolerancija)
        {
            exceptionIsteKoordinateTocke(stajaliste, vizura);
            exceptionOdNulaDo2PI(izmjereniAzimut);

            f = slobodanClan(stajaliste, vizura, izmjereniAzimut);
            TolerancijaZadovoljena = provjeraTolerancije(f.ToRadians().Angle, tolerancija.ToRadians().Angle);
        }
Exemple #15
0
 /// <summary>
 /// Izracunava slobodan clan (prikraceno mjerenje)
 /// </summary>
 /// <param name="stajaliste">Tocka stajalista instrumenta</param>
 /// <param name="vizura">Tocka vizure instrumenta</param>
 /// <param name="izmjereniAzimut">Azimut (smjerni kut, direkcioni ugao) izmjeren na terenu</param>
 /// <returns>Rad</returns>
 private Radians slobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, IRadian izmjereniAzimut)
 {
     return(stajaliste.SmjerniKut(vizura) - izmjereniAzimut.ToRadians());
 }