Bu sorunun birçok geçerli çözümü var. Bunlardan biri açıklamanıza benzer şekilde çalışır, ancak çokgenleri "rastgele" konumlara dilimlemek yerine, hesaplama miktarını en aza indirecek şekilde tasarlayabilirsiniz.
İşte temel algoritma. Bu giriş herhangi bir düzlemde tarama yönü oluşur, bir çokgen p sıfır olmayan bir alanın, bir hedef alanı , bir sıfır ve çokgenin alanı ve negatif olmayan bir eşik arasında t (alan birimi olarak). Amacı, P'yi , süpürme yönüne dik bir çizgiyle, çizginin sağında ve diğeri çizginin solunda olmak üzere iki parçaya bölmektir; öyle ki, sağ bölge ile hedef alan a arasındaki fark , daha büyük t .
L , süpürme yönüne dik herhangi bir yönlendirilmiş çizgi olsun . Tanımlama f (L) P alanının L sağ eksi bulunan olduğu bir . Bu şartlarda görev, f'nin sıfırını bulmaktır . Çünkü f türevlenebilir olması pek mümkün değildir, ama her iki sürekli kullanımıdır bir ikiye bölme yöntemi, sekant yöntemi veya - benim favori- -Brent yöntemi . Hepsi basit ve yakınsama garantisi. Bağımsız değişken için yakınsama toleransı için t kullanın .
Bu kadar. Bunu kodlamanın ne olacağını düşünelim. Kök bulma rutindir - bunun için genel bir kod öbeğini kullanabilirsiniz - böylece GIS çalışması f kodlamasıyla sonuçlanır . Bunu yapmak gerektirir
1. Splitting the polygon by a line.
2. Computing the area of the piece(s) to the right of the line.
Her iki işlem de hemen hemen her vektöre dayalı GIS'de gerçekleştirilir. Değilse, çizgiyi, çizginin sağındaki yarım düzlemi temsil eden çok büyük bir dikdörtgen ile değiştirebilirsiniz. 1. adım olur
1'. Clip the polygon to the rectangle.
Bu gerçekten basit bir işlem.
Kök bulmaya başlamak için, f nin sıfırının garanti edileceği bir aralık bulmanız gerekir . Bu kolaydır: çokgenin zarfını ("sınırlayıcı kutu") çizgi süpürme yönüne yansıtın. Projeksiyon istediğiniz aralıktır.
Bu sorunun uzun bir tarihi var. Bu algoritmayı uzun zaman önce ArcView 3.x için uyguladım ve eski ESRI kullanıcı forumlarında defalarca tanımladım. Google
huber split çokgen sitesi: forums.esri.com
tartışmalar için, kodlara bağlantılar, donanımlar ve varyasyonlar (çokgenleri mümkün olduğu kadar küçük boyutlardaki parçalara bölmek gibi) ve tarama verileri için algoritmalar.
Amerika kıtasındaki devletlerin her birinin üçte biri gölgeli olarak (eşit alan projeksiyonunda) nasıl göründüğü işte budur. Belli ki süpürme yönü dikeydi.