/// <summary> /// Mijenja jedinicu duzine u zadanu i preracunava vrijednosti koordinata daodgovaraju zadanoj jednici /// </summary> /// <param name="jedinica">jedinica duzine</param> /// <returns>TockaProjekcija</returns> public TockaProjekcija PromjenaJediniceDuzine(JedinicaDuzine jedinica) { koverzijaJedinicaDuzineUMetre(); this.jedinica = jedinica; switch (this.jedinica) { case JedinicaDuzine.metar: break; case JedinicaDuzine.decimetar: this.y = this.y * 10; this.x = this.x * 10; break; case JedinicaDuzine.centimetar: this.y = this.y * 100; this.x = this.x * 100; break; case JedinicaDuzine.milimetar: this.y = this.y * 1000; this.x = this.x * 1000; break; default: break; } return(this); }
/// <summary> /// Vraca slobodan clan u odredenoj jedinici za duzinu /// </summary> /// <param name="f">Slobodan clan</param> /// <param name="jedinica">Jedinica za vracanje (enum Duzina)</param> /// <returns>double</returns> private double duzinaJedinica(double f, JedinicaDuzine jedinica) { switch (jedinica) { case JedinicaDuzine.metar: return(f); case JedinicaDuzine.decimetar: return(f / 10); ; case JedinicaDuzine.centimetar: return(f / 100); case JedinicaDuzine.milimetar: return(f / 1000); default: return(f); } }
/// <summary> /// Koordinate tocke; lijevi koordinatnom u ravnini; /// </summary> /// <remarks>Ovo su najcesce koordinate u projekciji. /// <para/>Easting (E) = y /// <para/>Northing (N) = x /// </remarks> /// <param name="y">Vrijednost koordinate na y-osi u lijevom 2D koordinatnom sustavu</param> /// <param name="x">Vrijednost koordinate na x-osi u lijevom 2D koordinatnom sustavu</param> public TockaProjekcija(double y, double x, JedinicaDuzine jedinica) { this.y = y; this.x = x; this.jedinica = jedinica; }
/// <summary> /// Koordinate tocke; lijevi koordinatnom u ravnini; /// </summary> /// <remarks>Ovo su najcesce koordinate u projekciji. /// <para/>Easting (E) = y /// <para/>Northing (N) = x /// </remarks> /// <param name="y">Vrijednost koordinate na y-osi u lijevom 2D koordinatnom sustavu</param> /// <param name="x">Vrijednost koordinate na x-osi u lijevom 2D koordinatnom sustavu</param> public TockaProjekcija(double y, double x) { this.y = y; this.x = x; this.jedinica = JedinicaDuzine.metar; }
/// <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="jedinica">Jedinica u kojoj se daje vrijednost slobodnog clana</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, JedinicaDuzine jedinica, double tolerancija) { exceptionIsteKoordinateTocke(stajaliste, vizura); exceptionIzmjerenaDuzinaManjaOdNule(izmjerenaDuzina); f = slobodanClan(stajaliste, vizura, izmjerenaDuzina); tolerancijaZadovoljena = provjeraTolerancije(f, tolerancija); f = duzinaJedinica(f, jedinica); }