Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЗ_ТП_Алексеев_v7.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
745.61 Кб
Скачать

2.2. Альтернативные потоки

2.2.1 Неверное значение координаты: введено неверное значение координаты; субъекту предоставляется возможность ввести координаты заново.

2.2.2 Ввод с клавиатуры: Субъект заполняет данные вручную.

2.2.3 Контрольный пример: Субъект использует данные, заранее заготовленные при разработке приложения.

2.2.4 Случайный пример: Субъект использует генерацию программой случайных координат исходя из ограничивающих условий.

3.0. Специальные требования: специальные требования не определены.

  1.  Предусловия: предусловия не определены.

5.0. Постусловия: постусловия не определены.

6.0. Дополнительные замечания: дополнительных замечаний нет.

1.2 Требования к приложениям

Исходя из поставленных задач, каждое приложение должно соответствовать следующим требованиям:

  • иметь интуитивно понятный пользователю интерфейс;

  • вычислять аналитически площадь четырехугольника методом Монте-Карло, рассчитывать относительную погрешность вычислений, а также измерять время расчета для каждого N= 103, 104, 105, 106, 107

  • строить таблицу зависимости рассчитанной площади, относительной погрешности и времени вычислений от количества точек N;

  • сообщать пользователю об ошибках;

  • реализовывать возможность ввода координат вершин четырехугольника с клавиатуры, а также возможность проведения опытов для четырехугольника с использованием контрольных примеров, или генерации случайных координат.

Все 3 приложения должны выполнять одинаковую задачу, но способы реализации различаются для каждого приложения. В соответствии с вариантом задания, необходимо разработать следующие 3 приложения. Сформулируем технические требования для каждого из них.

Настольное приложение, имеющее консольный или графический интерфейс пользователя:

  • модель: вычисление площади четырехугольника;

  • метод: Монте-Карло;

  • интерфейс: WPF;

  • язык: C#;

  • результат выполнения: таблица.

Web приложение на базе скриптов:

  • модель: вычисление площади четырехугольника;

  • метод: Монте-Карло;

  • интерфейс: PHP;

  • язык: haxe;

  • результат выполнения: таблица.

Web приложение с компилируемым кодом:

  • модель: вычисление площади четырехугольника;

  • метод: Монте-Карло;

  • интерфейс: ASP .NET;

  • язык: С#;

  • элементы управления: WPF;

  • тип вызова Web-сервиса: асинхронный;

  • результат выполнения: таблица.

1.3 Входные данные

Исходными данными при разработке приложений данной курсовой работы являются координаты точек вершин заданного четырехугольника.

1.4 Выходные данные

Во всех приложениях выходными данными являются:

  • количество точек, попавших в четырехугольник;

  • площадь трапеции, вычисленная геометрическим методом;

  • площадь описанного четырехугольника;

  • площадь трапеции, вычисленная методом Монте-Карло;

  • погрешность вычислений;

  • время вычислений.

  1. Анализ алгоритма решения задачи

2.1 Метод Монте-Карло

Для вычисления площади четырехугольника необходимо вычислить площадь прямоугольника, описывающего заданный четырехугольник, а затем N раз сгенерировать по два случайных числа для координат x и y, соответствующих координатам сгенерированной точки.

Для каждой точки выполняется проверка, попала ли точка внутрь заданного четырехугольника. Если из N точек M точек оказалось внутри четырехугольника, а площадь прямоугольника равна S, то площадь четырехугольника будет приближенно равна .

Поскольку площадь данного четырехугольника легко вычисляется по правилам геометрии, мы можем определить относительную погрешность приближенного вычисления этой площади методом Монте-Карло. Естественно, чем больше N, тем меньше должна быть погрешность такого вычисления.

Данный четырехугольник является трапецией. Для вычисления площади трапеции по правилам геометрии используется формула:

,

где ae и bc – длина нижнего и верхнего основания трапеции соответственно, а h – высота трапеции. Длина основания вычисляется как разность между абсциссами точек ex-ax и cx-bx. Высота трапеции определяется как разность между ординатами точек by-ay.

2.2 Определение попадания точки внутрь трапеции

Предположим, мы задали координаты 4 вершин трапеции abce. Точка с координатами (x;y) лежит внутри трапеции abce, если она лежит справа или на прямой, проходящей через точки a и b, и слева или на прямой, проходящей через точки с и e (рис. 2).

Рис. 2. Определение попадания точки в трапецию

Из исходных данным нам известно, что возможных расположений точки е относительно точки c может быть 3 – xc<xe, xc>xe, xc=xe . Это отображено на рис.2. Определим теперь алгоритм определения принадлежности точки прямой.

В математике прямую можно задать с помощью уравнения прямой y=k*x + b, где х, у – это координаты точки, k – тангенс угла или , который можно определить, как отношение катетов противолежащего и прилежащего угла, если рассмотреть треугольник, составленный из 3 точек. Отсюда –

.Относительно точки е нам надо учитывать то, возможных вариантов ее расположения может быть 3. Коэффициент будет рассчитываться по аналогии.

, но если xc<xe , то коэффициент k2 поменяет знак. В случае, если xc=xe , нам вообще не потребуется этот коэффициент, мы будем всего лишь сравнивать координату x относительно точки с, так как в этом случае, правой границей будет прямая. b – это смещение относительно начала координат. После нахождения к, мы сможем подставить известные данные в уравнение, и найти b.

Для каждого из трех возможных вариантов расположения абсциссы точки e относительно абсциссы точки c существует свое условие проверки для определения принадлежности точки с координатами (x;y) плоскости, ограниченной трапецией abce.

Если один раз рассчитать угловые коэффициенты (k) и коэффициент смещения (b), а затем подставить координаты генерируемой точки , то получим следующее соотношение:

Требуется отдельно оговорить тот факт, что возможных расположений точки С относительно точки E может быть 3. Система выше верна, если координаты точки c меньше координат точки e.

Если абсцисса точки e меньше абсциссы точки c, то точка с координатами (x;y) лежит внутри трапеции abce тогда, когда одновременно выполняются условия:

Если абсцисса точки e равна абсциссе точки c, то точка с координатами (x;y) лежит внутри трапеции abce тогда, когда выполняется условие:

.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]