kanatlı kenar - Winged edge

Bir kenar kaydının grafiksel gösterimi. Kenar referanslarının kanatlara benzediğini unutmayın.

Olarak bilgisayar grafik , kanatlı kenar veri yapısı temsil eden bir şekilde çokgen kafes bilgisayar belleğinde. Bir tür sınır temsilidir ve bir modelin hem geometrisini hem de topolojisini tanımlar . Üç tür kayıt kullanılır: köşe kayıtları, kenar kayıtları ve yüz kayıtları. Bir kenar kaydına referans verildiğinde, sabit zamanda birkaç tür komşuluk sorgusu (komşu kenarlar, tepe noktaları ve yüzler hakkındaki sorgular) yanıtlanabilir. Bu tür komşuluk bilgisi, Alt Bölüm yüzeyi gibi algoritmalar için kullanışlıdır .

Özellikleri

Kanatlı kenar veri yapısı açıkça geometri ve tarif topoloji üç veya daha fazla yüzeyleri ortak bir kenarında bir araya ve buluşun gelip yüzleri, kenar ve köşelerin. Sıralama, yüzeyler kesişme kenarının doğal oryantasyonuna göre saat yönünün tersine sıralanacak şekildedir. Ayrıca temsil, aşağıda gösterilen gibi sayısal olarak kararsız durumlara izin verir.

kenarda nokta.png

Kanatlı uç veri yapısı, ağın açıkça bağlantılı yapısı nedeniyle yüzler, kenarlar ve tepe noktaları arasında hızlı geçişe izin verir. Küçük depolama ek yükü ile sabit zamanda bitişik sorgular sunar. Yapılandırılmamış bir ızgara belirtmenin bu zengin biçimi, bir düğüm ve eleman listesi gibi çokgen ağların daha basit belirtimlerinin veya normal bir ızgaranın zımni bağlanabilirliğinin aksinedir . Kanatlı uç veri yapısına bir alternatif, Yarım kenar veri yapısıdır .

Yapı ve sözde kod

Yüz ve tepe kayıtları nispeten basittir, kenar kaydı ise daha karmaşıktır.

  • Her tepe noktası için, kaydı yalnızca tepe noktasının konumunu (örn. koordinatlar) ve bir olay kenarına referansı saklar. Diğer kenarlar, kenardaki diğer referanslar takip edilerek bulunabilir.
  • Benzer şekilde, her yüz kaydı, yüzü çevreleyen kenarlardan yalnızca birine bir referans depolar. Bu bilgiyi elde etmek için yüz, kenarın kendi sol ve sağ yüzleriyle önemsiz bir şekilde karşılaştırılabileceğinden, yüze göre kenarın yönünü (CCW veya CW) kaydetmeye gerek yoktur.
  • Son olarak, kenar kaydının yapısı aşağıdaki gibidir. Bir kenarın yönlendirildiği varsayılır. Kenar kaydı, kenarın uç noktalarını oluşturan köşelere iki referans, kenarın her iki tarafındaki yüzlere iki referans ve sol ve sağ yüzü çevreleyen önceki ve sonraki kenarlara dört referans içerir.

Kısacası, kenar kaydı, hem bitişik bir tepe noktası çevresinde hem de bitişik bir yüz çevresinde hareket ederken, tüm bitişik kayıtlarına referanslara sahiptir.

class Edge {
  Vertex *vert_origin, *vert_destination;
  Face *face_left, *face_right;
  Edge *edge_left_cw,
       *edge_left_ccw,
       *edge_right_cw,
       *edge_right_ccw;
}
class Vertex {
  float x, y, z;
  Edge *edge;
}
class Face {
  Edge *edge;
}

Ayrıca bakınız

Dış bağlantılar