Вычисление площади одноконтурного несамопересекающегося многоугольника |
Previous Top Next |
Code: |
{ **** UBPFD *********** by kladovka.net.ru **** >> Вычисление площади одноконтурного несамопересекающегося многоугольника
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; |
©Drkb::04123