Реферат: Вычисления площади произвольного многоугольника
АННОТАЦИЯ
В курсовом проекте решается задача вычисления площади произвольного многоугольника итерационным алгоритмом.
ЗАДАНИЕ.
Многоугольник (не обязательно выпуклый) задан на плоскости пересечением координат вершин в порядке обхода его границ. Определить площадь многоугольника.
СОДЕРЖАНИЕ
Аннотация
Задание на выполнение курсового проекта
Содержание
Введение
1 Разработка программной реализации
2 Проверка на контрольных примерах
3 Заключение
Приложение 1. Блок-схема.
Приложение 2. Программа.
ВВЕДЕНИЕ
Системы, подобные представленной, часто можно встретить в повседневной жизни.
Данная задача не имеет аналитического решения. В геометрии существуют формулы, позволяющие вычислять площади правильных многоугольников, но для произвольных многоугольников таких формул нет. Решение задачи можно получить численными методами. Рассмотрим два из них.
1. Площадь произвольной фигуры можно вычислить методом Монте-Карло . Фигура вписывается в другую фигуру с известной площадью. Случайным образом на последнюю ставятся произвольное количество точек. Площадь определяется по формуле , где Nф – количество точек попавших в заданную фигуру, N – общее количество точек. Достоинство данного метода заключается в простоте реализации, сложность состоит только в определении попадания точки внутрь заданной фигуры. Очевидно, что точность вычисленной площади зависит от количества точек. Приемлемая точность может быть достигнута только при большом их количестве. В этом заключается один из недостатков метода. Точность также сильно зависит от качества генератора случайных чисел.
2. Из курса геометрии известно, что любой многоугольник можно разбить на несколько треугольников, соединяя отрезками несмежные вершины. Площадь многоугольника при этом будет равна сумме площадей полученных треугольников. В этом заключается второй метод определения площади. Площадь треугольника по заданным вершинам легко определяется по аналитическим формулам, поэтому этот метод позволяет получить большую точность при меньших затратах вычислительных ресурсов.
РАЗРАБОТКА ПРОГРАММНОЙ МОДЕЛИ.
Решение задачи будем производить, разбивая одну большую и трудную задачу на несколько небольших и несложных.
В черновом виде данный алгоритм можно представить в следующем виде:
1. Ввод вершин
2. Предварительная обработка
3. Пока количество вершин больше трех повторяем:
· Найти выпуклую вершин, т.е. вершину, внутренний угол которой меньше 1800 . Например на рисунке вершины 1,3,4,5 являются выпуклыми.
· Отрезаем треугольник образованный этой вершиной и двумя смежными.
4. Площадь многоугольника будет равна сумме площадей отрезанных треугольников и площади оставшегося (при выходе из цикла) треугольника.
Рассмотрим все пункты алгоритма.
1) Ввод данных. Данные будем хранить в текстовом файле ,каждая первая строка которого содержит количество вершин, а последующие – пары координат (X,Y), разделенных пробелом. Координаты вершин и внутренние углы будем хранить в структуре типа:
sd: array[1..100] of
record
--> ЧИТАТЬ ПОЛНОСТЬЮ <--