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

  • InsideBlackBerry

    InsideBlackB

    14 Aralık 2009
  • KittiesMama

    KittiesMama

    10 AĞUSTOS 2008
  • OVERWERK

    OVERWERK

    6 Temmuz 2010