SORU
16 Ocak 2009, Cuma


Nasıl 2 boyutlu bir çokgen yüzey alanı hesaplanır?

Kendini bilgisayar olmayan 2 boyutlu uzayda noktalar bir dizi varsayarak, elde edilen çokgenin alanını belirleyen etkili bir yöntem nedir?

Bir yan not olarak, bu bir ödev değil kod arıyorum. Benim kendi yöntemi uygulamak için kullanabileceğim bir açıklama arıyorum. Puan listesinden üçgenler bir dizi çekerek ilgili bazı fikirlerim var, ama kenar durumlarda konveks ilgili bir grup ve muhtemelen yetişmeyecek bu içbükey çokgenler olduğunu biliyorum.

CEVAP
16 Ocak 2009, Cuma


Burada the standard method, AFAIK. Temelde her köşe etrafında çapraz ürünler toplamı. Nirengi çok daha basit.

Python kod, bir çokgen bir liste olarak temsil verilen (x,y) köşe, üstü örtülü bir son köşe sarma koordinatları:

def area(p):
    return 0.5 * abs(sum(x0*y1 - x1*y0
                         for ((x0, y0), (x1, y1)) in segments(p)))

def segments(p):
    return zip(p, p[1:]   [p[0]])

David Lehavi yorum: bu algoritma çalışır neden belirtmekte yarar var: fonksiyonlar-y ve x Green's theorem bir uygulama; tam şekilde planimeter çalışır. Daha ayrıntılı olarak:

= Yukarıdaki formül
integral_over_perimeter(-y dx x dy) =
integral_over_area((-(-dy)/dy dx/dx) dy dx) =
2 Area

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006
  • Tutorials Junction

    Tutorials Ju

    1 Ocak 2014