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

  • androidandme

    androidandme

    10 Mart 2009
  • Cole Rolland

    Cole Rolland

    23 Kasım 2008
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006