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

  • EmmightySofia

    EmmightySofi

    25 EYLÜL 2011
  • Matthew Pearce

    Matthew Pear

    9 AĞUSTOS 2009
  • MysteryGuitarMan

    MysteryGuita

    16 HAZİRAN 2006