Dejenere çokgenler nelerdir?


9

Dejenere çokgenler nelerdir? Belirli bir çokgen çiftinin dejenere olup olmadığını nasıl kontrol edebilirim?


2
Bağlam? "Dejenere poligon" un standart bir tanımı olduğuna inanmıyorum.
Peter Shor

İki dışbükey poligonum varsa, ne dejenere olur? ortak bir tarafı paylaşıyorlarsa veya çakışıyorlarsa? ya da hiç? ya da her ikisi de?
Alice

1
Benim tahminim bunlar iki bitişik köşenin aynı olduğu çokgenler.
Yuval Filmus

Yanıtlar:


9

Bazı köşeleri birbirlerine uzanırsa bir çokgen dejenere olur. örneğin üçgen (0,0), (0,1), (0,0) dejenere olur. 3 kenarı ve 3 köşesi vardır, ancak iki köşesi tekrar eder. Bir tepe noktasını birden çok kez tekrarlamak mümkündür (örneğin (0,0), (0,0), (0,0) başka bir dejenere üçgendir). Tanım olarak, bir çokgenin dejenere olup olmadığını kontrol etmek kolaydır.

Ama dejenere çokgenlerin kullanım alanları nelerdir? Grafik hızlandırmadan (3D çizim) bir uygulama aşağıdaki gibidir:

3B çizimde GPU'lar normalde görüntüleri oluşturmak için üçgenleme kullanır. Üçgenleri kullanmanın (basit) nedeni, mümkün olan en basit 2D nesneler olmalarıdır, bu nedenle çok fazla donanıma ihtiyaç duymazlar.

Karmaşık bir 3D görüntü çizmek istiyorsak, bu GPU sınırlamasıyla, görüntüyü birden çok üçgene ayırmamız gerekir. Ancak, GPU'yu her üçgeni ayrı ayrı işlemek için çağırırsak, çok yavaş olur (çağrı sayısı nedeniyle). Bu nedenle üçgen şerit, GPU'ya yapılan çağrı sayısını azaltmak için kullanılır. Üçgen şeritlerin iyi bir açıklaması Microsoft Documentation: Triangle Strips'de bulunabilir , ayrıca wiki'yi de görebilirsiniz: Triangle Strip .

Ancak sorun, bir şeride iki ayrı nesne çizmek istediğimizde ortaya çıkar. Bu durumda dejenere üçgenler yardımcı olur. GPU dejenere üçgenleri tespit edebilir ve çizimini atlayabilir. Böylece bir dejenere üçgen ile iki ayrı şerit bağlayabiliriz.

Genel olarak , karşılık gelen üçgen şeritlere sahip olacağımız farklı bileşene sahipsek, hepsini GPU'ya tek bir çağrı ile çizebiliriz. Bu, fazladan bellek kullanımına neden olur, ancak oluşturma için GPU'ya yapılan çağrı sayısı ile ekstra, dejenere üçgen kullanma yükü arasında bir değiş tokuştur.n


1
Dejenere sadece bitişik eşit köşeler anlamına geliyorsa veya tanım bitişik olmayan eşit köşeler içeriyorsa açıklığa kavuşturabilir misiniz ? (Samimi bir soru - sadece cevabı geliştirmeye çalışmakla kalmıyor)
Erik Hermansen

0

Dejenere bir poligon sıfır alana sahip olan bir poligondur.


User742'nin cevabı doğruysa, bu doğru olmaz. Bir kare al. İki ve sadece iki köşe aynı ise, o zaman bir üçgendir ve bu nedenle alan> 0 olur.
HankCa

ve bunu iyi açıkladınız. bir üçgen dejenere değildir.
Gabriel Rohweder

0

Diğerlerinin de belirttiği gibi, duruma göre değişir. Genel olarak konuşursak, bir çokgen anormal noktaları yoksa dejenere değildir, ancak bu sadece sorunu bir adım geri iter; "anormal" nedir?

Gerçek cevap, bir poligonun şartnameyi ihlal etmesi durumunda dejenere olmasıdır. Biraz kaba cevap, bir çokgenin, algoritmanızın işleyemediği bir uç durum olması durumunda dejenere olmasıdır.

İşte CBS dünyasından bir örnek. OGC Basit Şartname Özellikler bir çokgen "geçerli" kılan bir çok dikkatli bir tanıma sahip. Bölüm 6.1.11.1'den alıntı:

Çokgenler için (geçerli Çokgenleri tanımlayan kurallar) iddialar aşağıdaki gibidir:

a) Çokgenler topolojik olarak kapalıdır;

b) Çokgenin sınırı, dış ve iç sınırlarını oluşturan bir dizi LinearRings'den oluşur;

c) Sınır çaprazında iki Halka ve bir Çokgenin sınırındaki Halkalar bir noktada kesişemez, ancak sadece bir teğet olarak kesişebilir, örneğin ;

PPolygon,c1,c2P.Boundary,c1c2,p,qPoint,p,qc1,pq,[pc2][δ>0|[|pq|<δ] [qc2]]

Not: Bu son durum, iki eğri için ortak bir noktada, yakındaki noktaların ortak olamayacağını söylüyor. Bu, her ortak noktayı bir teğetlik noktası olmaya zorlar.

d) Bir Çokgenin kesik çizgileri, sivri uçları veya delinmeleri olmayabilir, örneğin: ;PPolygon,P=P.Interior.Closure

e) Her Poligonun içi bir bağlantılı nokta kümesidir;

f) 1 veya daha fazla deliği olan bir Çokgenin dış kısmı bağlı değildir. Her delik, dış kısmın bağlı bir bileşenini tanımlar.

Yukarıdaki iddialarda, iç, kapanış ve dış standart topolojik tanımlara sahiptir. (A) ve (c) 'nin birleşimi, bir Çokgeni düzenli bir kapalı Nokta kümesi yapar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.