none
Koordinatları bilinen iki nokta arasındaki mesafe RRS feed

  • Soru

  • Koordinatları bilinen iki nokta arasındaki mesafe AB=  şu şekilde hesaplanıyor.Ben hesap işlemini aşağıdaki gibi yapabiliyorum ve şuan aklıma gelen bu

                        P1.x = _getobject.p1.x; P1.y = _getobject.p1.y;//(x1,y1)
                        P2.x = _getobject.p2.x; P2.y = _getobject.p2.y;//(x2,y2)
                        if((P2.y-P1.y)!= 0)
                        {
                            egim = Math.Atan((P2.x-P1.x)/(P2.y-P1.y));//Cephe üzerine hattın kendisi kadar eğimli yaz
                        }
                        else
                        {
                            egim = 1.57;
                        }
                        CultureInfo culinfo = new CultureInfo("tr-TR");
                        mesafe = Math.Round(Math.Sqrt((_getobject.p2.x - P1.x) * (_getobject.p2.x - P1.x) + (_getobject.p2.y - P1.y) * (_getobject.p2.y - P1.y)), 2).ToString("00.00", culinfo);//İki nokta arası uzunluğu 2 haneye 

    fakat mesafe kısmını farklı yapma imkanı veya daha estetik nasıl yazabilirim? Teşekkürler.


    22 Nisan 2016 Cuma 14:03

Yanıtlar

  • Merhaba Antecurs;

    Cevabınız için teşekkürler fakat benim kodlarda bir sıkıntı yok farklı bir yaklaşım nasıl olurdu diye düşünüp yazmıştım başka bir örnek verirsem;

     mesafe = Math.Sqrt(Math.Pow((_getobject.p2.x - P1.x), 2) + Math.Pow((_getobject.p2.y - P1.y), 2)).ToString("00.00", culinfo);
    gibi ilk yazdığım kod biraz kaba geldi farklı nasıl yazılabilirdi diye yazmıştım teşekkürler yine de yorum yazan olursa teşekkürler;

    • Yanıt Olarak İşaretleyen Kenan YILMAZ 23 Nisan 2016 Cumartesi 18:36
    22 Nisan 2016 Cuma 16:56

Tüm Yanıtlar

  • Tekrar bakmadım, formülü nerden buldunuz bilmiyorum ama gezirotalari.net sitesi için bir ara bakmıştım mesafe olayına. Hatırladığım formülde bir de dünyanın eğimi için alınan bir sabit vardı. Google maps api de uzaklık hesaplama diye aratırsanız bulursunuz. Ayrıca Google API ile de hesaplatma işini yapabiliyorsunuz.

    http://pgnchess.com
    http://dergikapaklari.com

    22 Nisan 2016 Cuma 16:15
  • Merhaba Antecurs;

    Cevabınız için teşekkürler fakat benim kodlarda bir sıkıntı yok farklı bir yaklaşım nasıl olurdu diye düşünüp yazmıştım başka bir örnek verirsem;

     mesafe = Math.Sqrt(Math.Pow((_getobject.p2.x - P1.x), 2) + Math.Pow((_getobject.p2.y - P1.y), 2)).ToString("00.00", culinfo);
    gibi ilk yazdığım kod biraz kaba geldi farklı nasıl yazılabilirdi diye yazmıştım teşekkürler yine de yorum yazan olursa teşekkürler;

    • Yanıt Olarak İşaretleyen Kenan YILMAZ 23 Nisan 2016 Cumartesi 18:36
    22 Nisan 2016 Cuma 16:56
  • Formül basit, pisagor'dan: uzun kenarın karesi, kısa kenarların karelerinin toplamına eşittir. 

    Ama!!!!!!!!!

    Bu iki boyutta geçerli. Küre üzerine çizilen üçgenlerin iç açıları toplamı 180 olmadığından bu formülü kullanamazsın.

    Yay uzunluğu hesabı yapmalısın ki bu da, yarı çaplar arasındaki açının bilinmesi ile olur. 

    (2 x pi x yarıçap x açı) / 360

    Antecurs un dediği gibi bu hesabı goole api senin için yapabilir.


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com

    23 Nisan 2016 Cumartesi 20:44
    Moderatör
  • Hocam Değerli cevabınız için teşekkürler;

    Fakat yanlış anlaşılmasın hocam

    konunun kaynağı jeodezik hesap ve ölçme bilgisi 2.Temel Ödev.

    2. Temel Ödev
    tan(alfa)=((Yb-Ya)/(Xb-Xa))
    (AB) --> A dan B ye olan semt
    alfa=ArcTan(((Yb-Ya)/(Xb-Xa)))
    Eğer (Xb-Xa)<0 ise (AB)=alfa+200
    Eğer (Yb-Ya)<0 ve (Xb-Xa)>0 ise (AB)=alfa+400
    
    S=|AB|=A dan B ye olan kenar
    S=|AB|=Karekök((Yb-Ya)^2+(Xb-Xa)^2)

    burada yapmak istediğim koordinatları belli noktalar arasındaki mesafeleri hesaplattırmak ve bunları bir CAD programında yazdırmaktı yukarıda ikinci olarak yazdığım

    mesafe = Math.Sqrt(Math.Pow((_getobject.p2.x - P1.x), 2) + Math.Pow((_getobject.p2.y - P1.y), 2)).ToString("00.00", culinfo);
    daha kısa ve doğru hesaplama yapıyor formüle göre fakat farklı bir yaklaşım olur mu diye düşündüm ve buraya yazdım değerli paylaşımlarınızı yazarsanız sevinirim şimdiden teşekkürler.



    23 Nisan 2016 Cumartesi 23:19
  • Dünyanın eğimi yok sayılıyorsa hesabın ve kodun doğru.

    benim bahsetmek istediğim şuydu;


    e-mail: onay[nokta]yalciner[at]hotmail[nokta]com


    24 Nisan 2016 Pazar 05:24
    Moderatör