dilden bağımsız çözüm:
VERİLEN: Bir çokgen HER ZAMAN üst üste binmeyen n-2 üçgenlerden oluşabilir (n = nokta sayısı VEYA kenar). 1 üçgen = 3 kenarlı çokgen = 1 üçgen; 1 kare = 4 kenarlı çokgen = 2 üçgen; vb reklam mide bulantısı QED
bu nedenle, bir çokgen, üçgenler "kesilerek" küçültülebilir ve toplam alan, bu üçgenlerin alanlarının toplamı olacaktır. bir parça kağıt ve makasla deneyin, en iyisi süreci takip etmeden önce görselleştirmenizdir.
Bir çokgen yolundaki 3 ardışık noktayı alır ve bu noktalarla bir üçgen oluşturursanız, üç olası senaryodan birine ve yalnızca birine sahip olursunuz:
- ortaya çıkan üçgen tamamen orijinal çokgenin içinde
- ortaya çıkan üçgen tamamen orijinal poligonun dışında
- ortaya çıkan üçgen kısmen orijinal çokgende yer alır
biz sadece birinci seçeneğe (tamamen kapsanan) giren durumlarla ilgileniyoruz.
bunlardan birini her bulduğumuzda, onu keseriz, alanını hesaplarız (kolay peasy, burada formülü açıklamayız) ve bir kenarı eksik olan yeni bir çokgen (bu üçgen kesik çokgene eşdeğer) yaparız. tek bir üçgenimiz kalana kadar.
bu programatik olarak nasıl uygulanır:
çokgenin ETRAFINDAKİ yolu temsil eden bir dizi (ardışık) nokta oluşturun. 0. noktasından başlayın. x, x + 1 ve x + 2 noktalarından üçgenler oluşturan diziyi (birer birer) çalıştırın. her üçgeni bir şekilden bir alana dönüştürün ve onu çokgenden oluşturulan alanla kesiştirin. Ortaya çıkan kesişme orijinal üçgenle aynıysa, bu durumda söz konusu üçgen tamamen çokgende yer alır ve kesilebilir. x + 1'i diziden çıkarın ve x = 0'dan yeniden başlayın. aksi takdirde (üçgen [kısmen veya tamamen] çokgenin dışındaysa), dizide bir sonraki x + 1 noktasına gidin.
ek olarak haritalama ile entegre etmek istiyorsanız ve coğrafi noktalardan başlıyorsanız, ÖNCE coğrafi noktalardan ekran noktalarına geçiş yapmalısınız. bu, yeryüzünün şekli için bir modelleme ve formül belirlemeyi gerektirir (dünyayı bir küre olarak düşünme eğiliminde olsak da, aslında bu, girintili düzensiz bir ovaldir (yumurta şekli)). Daha fazla bilgi wiki için birçok model var. Önemli bir konu, alanı bir düzlem olarak mı yoksa kavisli olarak mı değerlendireceğinizdir. genel olarak, noktaların birbirinden birkaç km uzakta olduğu "küçük" alanlar, dışbükey değil düzlemsel olarak kabul edilirse önemli bir hata oluşturmayacaktır.