Re: Найти площадь многоугольника

From
Oleg Polubasoff ()
To
All
Date
2000-02-28T13:59:03Z
Area
RU.ALGORITHMS
From: "Oleg Polubasoff" <pbas@spb.cityline.ru>

    Привет, Иван!

27.02.2000  21:06, Ivan Voroshilin wrote:

IV> Решал я задачу на олимпиаде по программированию следующего содержания:
IV> Вводим кол-во вершин многоугольника и коорд-ты (x,y) каждой вершины.
IV> Необходимо вычислить площадь этого многоугольника.
IV> Для выпуклого я конечно же сделал... Но в задании было написано, чтобы
IV> высчитывало площадь также для не выпуклого многоугольника.
IV> Может кто расскажет из знатоков как посчитать для невыпуклого
IV> многоугольника площадь?

Не могу спокойно смотреть, что тебе тут насоветовали. :)
Слушай сюда.

Пусть X(i), Y(i), i = 1..N - координаты вершин в порядке обхода по контуру.
Многоугольник может быть невыпуклым, но без самопересечений.

Тогда S = | \sum{i = 3..N} ((Y(1)-Y(i-1)) * (X(i)-X(1)) -
- (X(1)-X(i-1)) * (Y(i)-Y(1)))| / 2.

Бастрее не бывает. :)
В частности, для треугольника (тоже часто спрашивают):

S = |(Y(1)-Y(2)) * (X(3)-X(1)) - (X(1)-X(2)) * (Y(3)-Y(1))| / 2.

    Олег Полубасов.


--- ifmail v.2.15dev4
 * Origin: Demos online service (2:5020/400)