Доброе утро, все! Мне нужно вычислить площадь многоугольника, используя python. Формула для этого дается (извините, не могу размещать фотографии еще ..)Python - область нерегулярного полигона приводит к отрицательному значению?
(х * у - у * х) + (х * у - у * х) + ... (х п-1 * у - у п-1 * х)
Это код, который я придумал. Однако это приводит к (правильному) отрицательному значению, и я понятия не имею, почему. Можно ли просто умножить время области -0,5 или что-то не так с моим кодом? Любая помощь очень ценится !!
polygon = [[0,0],[-1,5],[2,3],[1,5],[3,6],[4,5],[5,3],[8,-2],[4,-4],[2,-5]]
area = 0.0
n = len(polygon)
for i in range(n):
i1 = (i+1)%n
area += polygon[i][0]*polygon[i1][1] - polygon[i1][0]*polygon[i][1]
area *= 0.5
print 'area = ', area
Я думаю, вы обнаружите, что знак результата просто зависит от того, стреляете ли вы по часовой стрелке или против часовой стрелки вокруг очков. Так что просто возьмите 'abs()' результата, и все будет в порядке. – Duncan