Реферат: Вычисления площади произвольного многоугольника
BB1:=-(sd[1].x-sd[n].x);
CC1:=sd[n].y*(sd[1].x-sd[n].x)-sd[n].x*(sd[1].y-sd[n].y);
if Mline(sd[n].x, sd[n].y)*Mline(sd[1].x,sd[1].y)<0 then
if Sline(sd[a].x, sd[a].y)*Sline(sd[b].x,sd[b].y)<0 then exit;
cross:=false;
end;
4) Вычисление площадей отсеченных треугольников будем по формуле Герона
где .
function St(x1,y1, x2,y2, x3,y3: real): real;
var a, b, c, p: real;
begin
a:=sqrt(sqr(x1-x2)+sqr(y1-y2));
b:=sqrt(sqr(x1-x3)+sqr(y1-y3));
c:=sqrt(sqr(x3-x2)+sqr(y3-y2));
p:=(a+b+c)/2;
St:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
5) Отсечение i-той вершины
dec(n);
for j:=i to n do sd[j]:=sd[j+1];
После отсечения какой-либо вершины необходимо заново рассчитать внутренние углы многоугольника, т.е. вызвать процедуру Angles.
После вычисления площади, выводим ее на экран и ожидаем нажатия любой клавиши.
Writeln('Площадь фигуры: ', S:3:3);
Readkey
Полный текст программы приведен в приложении 2.
Проверка на контрольных примерах.
Проверим работу программы на фигурах, площади которых можно вычислить по формулам.
1) Треугольник
Содержимое файла points.dat
3