コード例 #1
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>
        /// <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, Radians izmjereniAzimut)
        {
            exceptionIsteKoordinateTocke(stajaliste, vizura);
            exceptionOdNulaDo2PI(izmjereniAzimut);

            f = slobodanClan(stajaliste, vizura, izmjereniAzimut);
        }
コード例 #2
0
ファイル: SlobodaClan.cs プロジェクト: hgugic/Geodezija-2
 /// <summary>
 /// Provjerada li tocke imaju iste koordinate - ako imaju baca se exception
 /// </summary>
 /// <param name="stajaliste">Pocetna tocka mjerenja duzine</param>
 /// <param name="vizura">Zavrsna tocka mjerenja duzine</param>
 protected void exceptionIsteKoordinateTocke(ITockaProjekcija stajaliste, ITockaProjekcija vizura)
 {
     if ((stajaliste.X == vizura.X) && (stajaliste.Y == vizura.Y))
     {
         throw new ArgumentException("Koordinate dvije tocke su iste");
     }
 }
コード例 #3
0
        /// <summary>
        ///     <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerene duzine i duzine iz koordinata
        /// </summary>
        /// <param name="stajaliste">Pocetna tocka mjerenja duzine</param>
        /// <param name="vizura">Zavrsna tocka mjerenja duzine</param>
        /// <param name="izmjerenaDuzina">Izmjerena duzina u metrima</param>
        /// <exception cref="ArgumentException">Baca se kada su koordinate obe tocke iste ili je duzina manja ili jednaka nuli</exception>
        public DuzinaSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, double izmjerenaDuzina)
        {
            exceptionIsteKoordinateTocke(stajaliste, vizura);
            exceptionIzmjerenaDuzinaManjaOdNule(izmjerenaDuzina);

            f = slobodanClan(stajaliste, vizura, izmjerenaDuzina);
        }
コード例 #4
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);
        }
コード例 #5
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);
        }
コード例 #6
0
        /// <summary>
        ///     <para/>Racunanje slobodnog clana za matricu slobodnih clanova, preko izmjerene duzine i duzine iz koordinata
        /// </summary>
        /// <param name="stajaliste">Pocetna tocka mjerenja duzine</param>
        /// <param name="vizura">Zavrsna tocka mjerenja duzine</param>
        /// <param name="izmjerenaDuzina">Izmjerena duzina u metrima</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 ili je duzina manja ili jednaka nuli</exception>
        public DuzinaSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, double izmjerenaDuzina, double tolerancija)
        {
            exceptionIsteKoordinateTocke(stajaliste, vizura);
            exceptionIzmjerenaDuzinaManjaOdNule(izmjerenaDuzina);

            f = slobodanClan(stajaliste, vizura, izmjerenaDuzina);
            tolerancijaZadovoljena = provjeraTolerancije(f, tolerancija);
        }
コード例 #7
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);
        }
コード例 #8
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);
        }
コード例 #9
0
        /// <summary>
        /// <para/>Razvoj u Taylorov red funkcije duzine uz odbacivanje clanova viseg reda (Linearizacija)
        /// </summary>
        /// <param name="stajaliste">Priblizne koordinate tocke stajalista prilikom mjerenja</param>
        /// <param name="vizura">Priblizne koordinate tocke vizure</param>
        public Duzina(ITockaProjekcija stajaliste, ITockaProjekcija vizura)
        {
            Radians smjerniKut = stajaliste.SmjerniKut(vizura);

            yStajaliste = -Matematika.Sin(smjerniKut);
            xStajaliste = -Matematika.Cos(smjerniKut);

            yVizura = -yStajaliste;
            xVizura = -xStajaliste;
        }
コード例 #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>
 /// <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());
     }
 }
コード例 #11
0
        /// <summary>
        /// <para/>Razvoj u Taylorov red funkcije pravca uz odbacivanje clanova viseg reda (Linearizacija)
        /// <para/>Vrijednost razvoja u red data je u radijanima
        /// </summary>
        /// <param name="stajaliste">Priblizne koordinate tocke stajalista prilikom mjerenja (Od)</param>
        /// <param name="vizura">Priblizne koordinate tocke vizure (Do)</param>
        public Azimut(ITockaProjekcija stajaliste, ITockaProjekcija vizura)
        {
            Radians smjerniKut = stajaliste.SmjerniKut(vizura);
            double  duzina     = stajaliste.Duzina(vizura);

            yStajaliste = new Radians(-Matematika.Cos(smjerniKut) / duzina);
            xStajaliste = new Radians(Matematika.Sin(smjerniKut) / duzina);

            yVizura = -yStajaliste;
            xVizura = -xStajaliste;
        }
コード例 #12
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);
        }
コード例 #13
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());
        }
コード例 #14
0
ファイル: Pravac.cs プロジェクト: hgugic/Geodezija-2
        /// <summary>
        /// <para/>Razvoj u Taylorov red funkcije pravca uz odbacivanje clanova viseg reda (Linearizacija)
        ///     <para/>Vrijednost razvoja u red data je u radijanima
        /// </summary>
        /// <param name="stajaliste">Priblizne koordinate tocke stajalista prilikom mjerenja (Od)</param>
        /// <param name="vizura">Priblizne koordinate tocke vizure (Do)</param>
        public Pravac(ITockaProjekcija stajaliste, ITockaProjekcija vizura) : base(stajaliste, vizura)
        {
            Radians smjerniKut = stajaliste.SmjerniKut(vizura);
            double  duzina     = stajaliste.Duzina(vizura);

            yStajaliste = new Radians(-Matematika.Cos(smjerniKut) / duzina);
            xStajaliste = new Radians(Matematika.Sin(smjerniKut) / duzina);

            yVizura = -yStajaliste;
            xVizura = -xStajaliste;

            zNepoznanicaOrijentacije = 1;
        }
コード例 #15
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();
        }
コード例 #16
0
ファイル: Kut.cs プロジェクト: hgugic/Geodezija-2
        /// <summary>
        /// <para/>Razvoj u Taylorov red funkcije kuta uz odbacivanje clanova viseg reda (Linearizacija)
        /// <para/>Vrijednost razvoja u red data je u radijanima
        /// </summary>
        /// <param name="stajaliste">Priblizne koordinate tocke stajalista prilikom mjerenja</param>
        /// <param name="Od">Priblizne koordinate prve tocke vizure Od koje se mjeri kut</param>
        /// <param name="Do">Priblizne koordinate druge tocke vizure Do koje se mjeri kut</param>
        public Kut(ITockaProjekcija stajaliste, ITockaProjekcija Od, ITockaProjekcija Do)
        {
            Radians smjerniKutOd = stajaliste.SmjerniKut(Od);
            double  duzinaOd     = stajaliste.Duzina(Od);

            Radians smjerniKutDo = stajaliste.SmjerniKut(Do);
            double  duzinaDo     = stajaliste.Duzina(Do);


            yOd = new Radians(-Matematika.Cos(smjerniKutOd) / duzinaOd);
            xOd = new Radians(Matematika.Sin(smjerniKutOd) / duzinaOd);

            yDo = new Radians(Matematika.Cos(smjerniKutDo) / duzinaDo);
            xDo = new Radians(-Matematika.Sin(smjerniKutDo) / duzinaDo);

            yStajaliste = (-yDo) - yOd;
            xStajaliste = (-xDo) - xOd;
        }
コード例 #17
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);
        }
コード例 #18
0
 /// <summary>
 ///     <para/>Racunanje slobodnog clana (2D) za matricu slobodnih clanova, preko koordinata dvije tocke i izmjerenih baznih vektora
 /// </summary>
 /// <param name="stajaliste">Tocka ishodista vektora</param>
 /// <param name="vizura">Tocka zavrsekta vektora</param>
 /// <param name="dx">Komponenta izmjerenog vektor po x-osi</param>
 /// <param name="dy">Komponenta izmjerenog vektor po y-osi</param>
 public BazniVektorSlobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, double dx, double dy)
 {
     Fx = vizura.X - stajaliste.X - dx;
     Fy = vizura.Y - stajaliste.Y - dy;
 }
コード例 #19
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());
 }
コード例 #20
0
 /// <summary>
 /// Izracunava slobodan clan (prikraceno mjerenje)
 /// </summary>
 /// <param name="stajaliste"></param>
 /// <param name="vizura"></param>
 /// <param name="izmjerenaDuzina">Duzina izmjerena na terenu</param>
 /// <returns>double</returns>
 private double slobodanClan(ITockaProjekcija stajaliste, ITockaProjekcija vizura, double izmjerenaDuzina)
 {
     return(stajaliste.Duzina(vizura) - izmjerenaDuzina);
 }