Gönderen Wikipedia :
N köşe noktası ( x 0 , y 0 ), ( x 1 , y 1 ), ..., ( x n - 1 , y n − 1 ) ile tanımlanan kendiliğinden kesişmeyen kapalı bir çokgenin sentroidi nokta ( C x , C y ), burada
ve burada A çokgenin imzalı alandır,
Bu formüllerde, köşelerin çokgenin çevresi boyunca meydana gelme sırasına göre numaralandırıldığı varsayılmaktadır. Ayrıca, tepe noktasının ( x n , y n ) ( x 0 , y 0 ) ile aynı olduğu varsayılır , yani son durumda i + 1 i = 0'a çevrilmelidir . Noktalar saat yönünde sıralanırsa, yukarıdaki gibi hesaplanan A alanının negatif bir işareti olacağını unutmayın; ancak bu durumda bile centroid koordinatları doğru olacaktır.
- Sırayla bir köşe listesi verildiğinde (saat yönünde veya saat yönünün tersine), köşelerle temsil edilen kendiliğinden kesişmeyen kapalı çokgenin centroidini bulun.
- Bu yardımcı olursa, girdinin yalnızca CW veya yalnızca CCW olduğunu varsayabilirsiniz. Buna ihtiyacınız varsa cevabınızda söyleyin.
- Koordinatların tamsayı olması gerekmez ve negatif sayılar içerebilir.
- Girdi her zaman geçerli olur ve en az üç köşe içerir.
- Girişlerin yalnızca dilinizin yerel kayan noktalı veri türüne uygun şekilde işlenmesi gerekir.
- Girdi numaralarının her zaman ondalık nokta içereceğini varsayabilirsiniz.
- Giriş tamsayılarının
.veya ile biteceğini varsayabilirsiniz.0. - Giriş için karmaşık sayılar kullanabilirsiniz.
- Çıktı en yakın binde bire doğru olmalıdır.
Örnekler
[(0.,0.), (1.,0.), (1.,1.), (0.,1.)] -> (0.5, 0.5)
[(-15.21,0.8), (10.1,-0.3), (-0.07,23.55)] -> -1.727 8.017
[(-39.00,-55.94), (-56.08,-4.73), (-72.64,12.12), (-31.04,53.58), (-30.36,28.29), (17.96,59.17), (0.00,0.00), (10.00,0.00), (20.00,0.00), (148.63,114.32), (8.06,-41.04), (-41.25,34.43)] -> 5.80104769975, 15.0673812762
Her çokgeni bir koordinat düzleminde görmek için, koordinatları köşeli parantez olmadan bu sayfanın "Düzenle" menüsüne yapıştırın .
Sonuçlarımı korkunç olan bu Poligon Centroid Nokta Hesaplayıcı'yı kullanarak onayladım . Tüm köşeleri bir kerede girebileceğiniz veya ilk kez yazdığınızda -işaretinizi silmeye çalışmayan birini bulamadım . Python çözümümü, insanların cevap verme şansı bulduktan sonra kullanımınız için göndereceğim.
xs ve ys ortalamalarını almak , tüm ağırlığı gövdeye dağıtmak yerine köşelere yerleştirir. İlki düzenli olduğu için işe yarıyor, bu nedenle her iki yöntem de simetri merkezinde sona eriyor. İkincisi çalışır çünkü üçgenler için her iki yöntem de aynı noktaya götürür.

