canli bahis siteleriimplant dis fiyatlari

Semt Hesabı Kodlaması Javascript ile Nasıl Yapılır

  • 5
Semt Hesabı Kodlaması Javascript ile Nasıl Yapılır

Sizler için hazırladığımız bu kodlar içerisinde A ve B noktaları arasındaki semt hesabı ve uzaklık hesaplama yöntemi yani ikinci temel ödevin konusu olan kısımı işleyeceğiz.


function semt(A,B){
var ek = 0,ek2=0;
var dY = B[0]-A[0];
var dX = B[1]-A[1];
var aciR = Math.atan(dY/dX);
var aciD = aciR*(200/Math.PI);
if(dX>0 && dY>0){ek=0;ek2=200;}
if(dX<0 && dY>0){ek=200;ek2=200;}
if(dX<0 && dY<0){ek=200;ek2=-200;}
if(dX>0 && dY<0){ek=400;ek2=-200;}
var t1 = aciD + ek;
var m = Math.sqrt(Math.pow(dY,2)+Math.pow(dX,2));
var t2 = t1+ek2;
return {m:m,t1:t1,t2:t2};
}

  • Yukarıda kodlar da anlatılmak istenilen şu şekildedir fonksiyonun kullanım adı semt dir
  • A ve B olmak üzere iki tane parametre almaktadır
  • Bu parametreler iki elemanlı bir dizi olup ilk elemanında y koordinatını 2. elemanında x koordinatını saklamaktadır
  • Bilgisayar dillerinde radyan kullanılması sebebi ile daha sonradan dereceye dönüşüm işlemi yapılarak insanların görmek istediği formata taşınır
  • koordinat çizelgesinin oordinat ve apsisi yer değiştirmesi ile birlikte semt hesabı saat yönünde kuzey arasındaki açı olup bölgelerde y ve x in pozitif mi negatifmi olduğuna göre eklenmesi gereken grad cinsinden açıları belirlemektedir.
  • bununla beraber B noktasının A ile olan semt açısını bulabilmek içnide artı eksi 200 grad kullanılmaktadır
  • return ile birlikte 3 parametre geri dönüş değeri olarak sunulmuştur bunlar uzunluk, semt açısı ve tersi

Böylece Semt hesaplamasını kolayca yapabilirsiniz. konuyu çok iyi anlamadıysanız bir de aşağıdaki kodları irdeleyiniz. açıklama satırları mevcuttur

<!DOCTYPE html>
<html>
<head lang="tr">
<meta charset="UTF-8">
<title>Semt Hesapları</title>
</head>
<body>
<ul><h3>NOKTALAR</h3>
<li>A(512623.089,4254684.978) <button type="button" onclick="semthesabi(1);">Hesapla</button></li>
<li>B(512960.034,4254890.775) <button type="button" onclick="semthesabi(2);">Hesapla</button></li>
<li>C(512919.603,4254398.074) <button type="button" onclick="semthesabi(3);">Hesapla</button></li>
<li>D(512376.144,4254430.810) <button type="button" onclick="semthesabi(4);">Hesapla</button></li>
</ul>
<hr>
<ul><h3>NOKTA SEMTLERİ</h3>
<li>(AB) = <span id="AB">0</span>g</li>
<li>(AC) = <span id="AC">0</span>g</li>
<li>(AD) = <span id="AD">0</span>g</li>
<li>(AE) = <span id="AE">0</span>g</li>
</ul>
<hr>
<ul><h3>NOKTA MESAFELERİ</h3>
<li>|AB| = <span id="mAB">0</span>m</li>
<li>|AC| = <span id="mAC">0</span>m</li>
<li>|AD| = <span id="mAD">0</span>m</li>
<li>|AE| = <span id="mAE">0</span>m</li>
</ul>
</body>
</html>
<script>
// bu fonksiyon sadece semthesabi fonksiyonunu çağırır
function semthesabi(i){

// noktalarımız tanımlanır
var nA = [512623.089,4254684.978];
var nB = [512960.034,4254890.775];
var nC = [512919.603,4254398.074];
var nD = [512376.144,4254430.810];
var nE = [512386.617,4254930.924];

// noktalar A ve B olarak genelleme yapılır
var A=nA, B,isim;

// tıklanan butonun parametresine göre hangi noktayı hangisine göre hesap edeceğini bulur
if(i==1){B=nB; isim="AB";}
if(i==2){B=nC; isim="AC";}
if(i==3){B=nD; isim="AD";}
if(i==4){B=nE; isim="AE";}

// semt adlı fonksiyona değerleri gönderir ve sonucu alır
var hesap = semt(A,B);

// gelen sonuçları ekranda gösterir
document.getElementById(isim).innerText=hesap.t1+' - '+hesap.t2;
document.getElementById('m'+isim).innerText=hesap.m;

}
function semt(A,B){
// eklenecek açılar
var ek = 0,ek2=0;
// farklar
var dY = B[0]-A[0];
var dX = B[1]-A[1];
// açıyı bulma
var aciR = Math.atan(dY/dX);
// grad cinsine çevirme
var aciD = aciR*(200/Math.PI);
// bulunduğu bölgeye göre doğru sonuca ulaşma
if(dX>0 && dY>0){ek=0;ek2=200;}
if(dX<0 && dY>0){ek=200;ek2=200;}
if(dX<0 && dY<0){ek=200;ek2=-200;}
if(dX>0 && dY<0){ek=400;ek2=-200;}
// semt açısı
var t1 = aciD + ek;
// uzaklık
var m = Math.sqrt(Math.pow(dY,2)+Math.pow(dX,2));
// semt açısının tersi B den A ya
var t2 = t1+ek2;
return {m:m,t1:t1,t2:t2};
}
</script>

Sonuç Çıktısı

    NOKTALAR

  • A(512623.089,4254684.978)
  • B(512960.034,4254890.775)
  • C(512919.603,4254398.074)
  • D(512376.144,4254430.810)

    NOKTA SEMTLERİ

  • (AB) = 65.09392219779942 - 265.09392219779943g
  • (AC) = 148.95146142365112 - 348.95146142365115g
  • (AD) = g
  • (AE) = 351.2500695511268 - 151.25006955112678g

    NOKTA MESAFELERİ

  • |AB| = 394.82190698352713m
  • |AC| = 412.59478597295697m
  • |AD| = 354.3772075758715m
  • |AE| = 341.18681349041873m

olarak belirlenmiştir. Bu kod bloğunu html bir sayfa içerisine yapıştıracak olup Herhangi bir tarayıcıda açarsanız
Sonuçları buttonlara tıklayarak bulabilirsiniz


İNDİRMEK İÇİN GİRİŞ YAPINIZ

Yorum Yap & Puan Ver

  • 5

Ali KILIÇ

Ali KILIÇ 2017-04-25 11:02:20

gerçek matematik kurallaryıla yazmanız daha açıklayıcı olur. atan da tanda üretilmiş bir fonksiyondur e o zaman semt fonksiyonu yaz gitsin sadece orda kullanılan. dolayısı ile ben matematik kurallarınıa göre yazıyourm.
Ömer Faruk ATİZ

Ömer Faruk ATİZ 2017-04-21 00:56:37

hocam semt hesabında atan yerine atan2 kullanılsa daha basit olabilir.