kullanarak noktaların kümesinin ortasını nasıl alırım Bir nokta kümesi tarafından oluşturulan bir şeklin merkez noktasını (x, y) almak istiyorum.Python
Bunu nasıl yaparım?
kullanarak noktaların kümesinin ortasını nasıl alırım Bir nokta kümesi tarafından oluşturulan bir şeklin merkez noktasını (x, y) almak istiyorum.Python
Bunu nasıl yaparım?
Eğer centroid anlamına gelirseniz, sadece tüm noktaların ortalamasını alırsınız.
x = [p[0] for p in points]
y = [p[1] for p in points]
centroid = (sum(x)/len(points), sum(y)/len(points))
Python 2.x'de tamsayı bölüştürme konusunda dikkatli olun: her noktanın bir tamsayı x değeri varsa, merkezinizin x değeri bir tamsayıya yuvarlanır. '__future__ import division' öğesini kullanın, bölmeden önce bir float'a dönüştürün veya Python 3'ü kullanın. –
Eğer 'points' iki boyutlu bir Numpy dizisiyse, muhtemelen 'points.mean (0)' kullanabilirsiniz. – Philipp
Teşekkür ederim istediğim bu. –
Bir noktanın bir tuple (x, y) olduğunu varsayalım.
x,y=zip(*points)
center=(max(x)+min(x))/2., (max(y)+min(y))/2.
'da olduğu gibi ayrı segmentler için Green'in teoremini kullanmalısınız, maksimum + min değil, maks - min mi? –
@Thomas K: Kesinlikle haklısınız. – Kabie
bunun ne yaptığını anlamaya çalışıyor ... neden min'i maks'e ekliyoruz? @colin'in cevabı bana mantıklı geliyor, ancak bunun neden işe yaradığını da bilmiyordum. – Futile32
"Merkez" i tanımlayın. Ağırlık merkezi? Geometrik Merkez? Başka bir şey? –
Bu, matematikle ilgili bir soruya benzer. Bence bu exellent kitabında: http://www.openbookproject.net/thinkcs/ Python veya C++ 'da eğer hatırlamaya çalıştığınız şeylerin bazı örnekleri vardır. – mRt