Реферат: Вычисления площади произвольного многоугольника

angle: real;

end;

А количество вершин в глобальной переменной n.

Следующая процедура осуществляет ввод данных:

procedure input;

var f: text;

i: integer;

begin

Assign(f,'points.dat');

reset(f);

readln(f, n);

for i:=1 to n do readln(f, sd[i].x, sd[i].y);

end;

2) Предварительная обработка.

В данном пункте алгоритма осуществляется вычисление внутренних углов многоугольника.

Рассмотрим часть произвольного многоугольника:

Пусть вектор A образует с ось OX угол a1 , а вектор B – угол a2 . Тогда угол между ними (внутренний угол многоугольника) будет равен 180–a1 –a2 . Здесь нельзя использовать формулу угла между векторами через скалярное произведение, т.к таким образом вычисляется минимальный угол. Но при этом возможен такой случай:


Угол будет внешним.

Так вычислим либо все внутренние, либо все внешние углы многоугольника. Чтобы выяснить какие углы мы нашли, рассмотрим следующую теорему:

Сумма внешних углов произвольного многоугольника больше суммы внутренних.

Доказательство проведем по индукции:

1) Очевидно, что теорема справедлива для треугольника

2) Предположим, что теорема справедлива для k-угольника

3) Докажем теперь, что теорема справедлива для (k+1)-угольника.

Пусть сумма внутренних углов k-угольника равна a1 , а внешних a2 . Из п.2 следует, что a1 <a2 . k–угольник можно сделать (k+1)-угольником "нарастив" его на один треугольник:


Тогда сумма внутренних узлов (k+1)-угольника – a1 +b+g+d, а внешних a2 +(360-b)-g-d. Из геометрии известно, что сумма углов треугольника равна 1800 . Тогда:

сумма внутренних углов: a1 +180

сумма внешних углов: a2 +360-(b+g+d)=a2 +180.

Но из п.2 следует, что a1 <a2 . Следовательно, сумма внешних углов (k+1)-угольника больше суммы внутренних.(k+1)-угольника.

К-во Просмотров: 1182
Бесплатно скачать Реферат: Вычисления площади произвольного многоугольника