
- •Введение
- •Постановка задачи
- •1.1 Разработка технического задания
- •1.1 Анализ вариантов использования программы
- •Потоки событий
- •Основной поток
- •2.2. Альтернативные потоки
- •1.2 Требования к приложениям
- •1.3 Входные данные
- •1.4 Выходные данные
- •Анализ алгоритма решения задачи
- •Настольное приложение wpf
- •3.1 Технология Windows Presentation Foundation
- •3.2 Логическое проектирование приложения
- •4. Web приложение на базе скриптов haXe/php
- •Листинг №1. Определение попадания точки в четырехугольник. HaXe.
- •4.3 Результат работы приложения Рисунк 10. Результат эксперимента haXe/php
- •5. Web приложение на базе asp.Net
- •5.1 Программные средства разработки приложения
- •5.2 Логическое проектирование Web-сервиса
- •5.3 Логическое проектирование клиентской части
- •5.3 Генерирование прокси-класса
- •5.4 Вызов web-сервиса в асинхронном режиме
- •5.5 Системные требования
- •5.7Руководство программиста
- •5.7.1 Назначение и условия применения приложения
- •5.7.2Структура приложения
- •5.8.4 Сообщения оператору
- •5.9 Результат работы приложения
- •Анализ вычислительной эффективности приложений
- •Заключение
- •Список литературы
- •Приложение Файл MainWindow.Xaml(настольное приложение)
- •Файл MainWindow.Xaml.Cs
- •Файл Main.Hx(web приложение на базе скриптов)
- •Файл Index.Html
- •Файл Service.Asmx(web сервис)
- •Файл Service.Cs
- •Файл MainWindow.Xaml(клиентская часть приложения wpf)
- •Файл MainWindow.Xaml.Cs
2.2. Альтернативные потоки
2.2.1 Неверное значение координаты: введено неверное значение координаты; субъекту предоставляется возможность ввести координаты заново.
2.2.2 Ввод с клавиатуры: Субъект заполняет данные вручную.
2.2.3 Контрольный пример: Субъект использует данные, заранее заготовленные при разработке приложения.
2.2.4 Случайный пример: Субъект использует генерацию программой случайных координат исходя из ограничивающих условий.
3.0. Специальные требования: специальные требования не определены.
Предусловия: предусловия не определены.
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 Выходные данные
Во всех приложениях выходными данными являются:
количество точек, попавших в четырехугольник;
площадь трапеции, вычисленная геометрическим методом;
площадь описанного четырехугольника;
площадь трапеции, вычисленная методом Монте-Карло;
погрешность вычислений;
время вычислений.
Анализ алгоритма решения задачи
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 тогда, когда выполняется условие:
.