Delphi World - Вычисление площади одноконтурного несамопересекающегося многоугольника
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Вычисление площади одноконтурного несамопересекающегося многоугольника

Автор: Виктор Щербаков
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Вычисление площади одноконтурного несамопересекающегося многоугольника

1.Для многоконтурных или самопересекающихся многоугольников функция вернет неверный результат.
2.Площадь всегда положительна (т.е. не зависит от направления обхода).

Зависимости: нет
Автор:       Виктор Щербаков, shherbakov@yandex.ru, Нижний Новгород
Copyright:   Виктор Щербаков
Дата:        18 апреля 2002 г.
***************************************************** }

// Точка
type
  TFloatPoint = record
    X, Y: Double;
  end;

  // Точки полигона
type
  TPolygonPoints = array of TFloatPoint;

  // Сама функция

function PolygonSquare(Poly: TPolygonPoints): Double;
var
  I, J, HP: Integer;
begin
  Result := 0;
  HP := High(Poly);
  for I := Low(Poly) to HP do
  begin
    if I = HP then
      J := 0
    else
      J := I + 1;
    Result := Result + (Poly[I].X + Poly[J].X) * (Poly[I].Y - Poly[J].Y);
  end;
  Result := Abs(Result) / 2;
end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования