c# ile iki konum (küresel koordinatlarla – enlem/boylam) arası mesafe hesaplama

3
C# ile iki konum (k ar C# programlama dilin konum arasındak (düzlemsel) form Gl Aşağıdaki hazırlanan koordinat bilgileri olup, bilgilerini içermektedir. * Küresel koordinat bilg işlemlerle 2d koordinat (k iki konum arasındaki ger küresel koordinatlarla enle rası mesafe hesaplama ni kullanarak iki farklı enlem ve boy ki mesafeyi bulmak için küresel ko mata çevirerek bazı hesaplamalar d uzaklık lobal pozisyon / enlem-boylam sınıfta boylam1 – enlem1 1. kon , boylam2 – enlem2 de 2. konuma gisi belirli matematiksel fonksiyonla kartezyen ~ x,y) formatına içsel dönü rekli uzaklık yani mesafeyi bulmamız em / boylam) ylama sahip iki oordinatların 2d dahilinde bu tür klar bulunabilir. numun küresel a ait koordinat arın oluşturduğu üşüm ile çevrilip z sağlanır.

Upload: kazim-anil-aydin

Post on 22-Jan-2018

632 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: C# ile iki konum (küresel koordinatlarla – enlem/boylam) arası mesafe hesaplama

C# ile iki konum (küresel koordinatlarla

arası mesafe

C# programlama dilini kullanarak iki farklı enlem ve boylama sahip iki konum arasındaki mesafeyi bulmak için küresel koordinatların 2d (düzlemsel) formata çevirerek bazı hesaplamalar dahilinde bu t

Global pozisyon / enlem

Aşağıdaki hazırlanan sınıftakoordinat bilgileri olup,bilgilerini içermektedir.

* Küresel koordinat bilgisi belirli matematiksel fonksiyonların oluşturduğu işlemlerle 2d koordinat (kartezyen ~ x,y) formatına içsel dönüşüm ile çevrilip iki konum arasındaki gerekli uzaklık yani mesafeyi bulmamız sağlanır.

(küresel koordinatlarla – enlem

arası mesafe hesaplama

C# programlama dilini kullanarak iki farklı enlem ve boylama sahip iki konum arasındaki mesafeyi bulmak için küresel koordinatların 2d (düzlemsel) formata çevirerek bazı hesaplamalar dahilinde bu t

uzaklıklar bulunabilir.

Global pozisyon / enlem-boylam

Aşağıdaki hazırlanan sınıfta boylam1 – enlem1 1. konumun küresel koordinat bilgileri olup, boylam2 – enlem2 de 2. konuma ait koordinat

Küresel koordinat bilgisi belirli matematiksel fonksiyonların oluşturduğu işlemlerle 2d koordinat (kartezyen ~ x,y) formatına içsel dönüşüm ile çevrilip iki konum arasındaki gerekli uzaklık yani mesafeyi bulmamız sağlanır.

enlem / boylam)

C# programlama dilini kullanarak iki farklı enlem ve boylama sahip iki konum arasındaki mesafeyi bulmak için küresel koordinatların 2d (düzlemsel) formata çevirerek bazı hesaplamalar dahilinde bu tür

uzaklıklar bulunabilir.

1. konumun küresel de 2. konuma ait koordinat

Küresel koordinat bilgisi belirli matematiksel fonksiyonların oluşturduğu işlemlerle 2d koordinat (kartezyen ~ x,y) formatına içsel dönüşüm ile çevrilip iki konum arasındaki gerekli uzaklık yani mesafeyi bulmamız sağlanır.

Page 2: C# ile iki konum (küresel koordinatlarla – enlem/boylam) arası mesafe hesaplama

Mesafe sınıfımızda ilk olarak 2 adet fonksiyon tanımladık. Bu fonksiyonlar;

*https://www.mathworks.com/help/matlab/ref/rad2deg.html

Double rad2deg(Double rad) => Girilen radyan değerini derece değerine çevirir. Girdi ve çıktı değişkenleri Double formatında olmaktadır. (Örn. 10.4, 35.2..)

*https://www.mathworks.com/help/matlab/ref/deg2rad.html

Double deg2rad(Double deg) => Girilen radyan değerini derece değerine çevirir. Girdi ve çıktı değişkenleri Double formatında olmaktadır. (Örn. 4.1, 12.3..)

Diğer ana fonksiyona gelecek olursak;

Double Uzaklik_Hesapla(Double enlem1, Double boylam1, Double enlem2, Double boylam2) => Bu fonksiyonda 4 adet giriş değişkeni ve 1 adet çıkış değişkeni (dönüt) bulunmaktadır. Girdilerde çıktılarda Double formatındadır. (Örn. 23.5, 11.2..)

Uzaklık hesaplaması matematiksel modelin / Küresel koordinatın modeli / programdaki fonksiyonlara çevirerek çıktımızı mil değerinde alırız ; en son çıktı olarak ise mil – km çevrimi yaparak çıktımızı kilometre bazında alırız.

* 1 mil = 1,609344 km

using System; public static class Mesafe{

public static Double boylam1; // x1 olarak public static Double boylam2; // x2 olarak public static Double enlem1; // y1 olarak public static Double enlem2; // y2 olarak; seçilebilir

private static Double rad2deg(Double rad) {

return Double (rad / Math.PI * 180.0);

}

Page 3: C# ile iki konum (küresel koordinatlarla – enlem/boylam) arası mesafe hesaplama

private static Double deg2rad(Double deg) {

return Double (deg * Math.PI / 180.0);

}

public static Double Uzaklik_Hesapla(Double enlem1, Double boylam1, Double enlem2, Double boylam2) {

Double teta_degeri = boylam1 – boylam2; Double mil = Math.Sin(deg2rad(enlem1)) * Math.Sin(deg2rad(enlem2)) + Math.Cos(deg2rad(enlem1)) * Math.Cos(deg2rad(enlem2)) * Math.Cos(deg2rad(teta_degeri));

mil = Math.Acos(mil); mil = rad2deg(mil); mil = mil * 60 * 1.1515;

Double kilometre = mil * 1.609344;

return kilometre;

} }