c# ile iki konum (küresel koordinatlarla – enlem/boylam) arası mesafe hesaplama
TRANSCRIPT
![Page 1: C# ile iki konum (küresel koordinatlarla – enlem/boylam) arası mesafe hesaplama](https://reader037.vdocuments.pub/reader037/viewer/2022100123/58ad45e61a28ab8b598b5f4f/html5/thumbnails/1.jpg)
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](https://reader037.vdocuments.pub/reader037/viewer/2022100123/58ad45e61a28ab8b598b5f4f/html5/thumbnails/2.jpg)
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](https://reader037.vdocuments.pub/reader037/viewer/2022100123/58ad45e61a28ab8b598b5f4f/html5/thumbnails/3.jpg)
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;
} }