Рабочее приложение для вычисления принадлежности точки заданной области. Реализация и проверка корректности ввода данных: радиуса, условий попарного пересечения окружностей, принадлежности центров окружностей одной прямой, заключенной внутри окружностей.
Аннотация к работе
.2 Описание алгоритмаОсуществить проверку условий: корректности ввода радиуса, условия попарного пересечения окружностей, принадлежности центров окружностей одной прямой и принадлежности точки области, заключенной внутри трех окружностей;Функция для окружности:x? y? = R?, т.к. точка должна быть внутри окружности, то формула будет выглядеть: x? y? <= R? Так как три окружности должны попарно пересекаться (обязательным условием считать, что ни одна окружность не должна лежать внутри другой), то должно выполняться условие, а прямая, на которой находятся центры, может быть под углом, то по теореме Пифагора находим кротчайшее расстояние между точками, т.е. гипотенузу: корень из суммы квадратов разницы двух соседних центров окружностей [sqrt((y2-y1)*(y2-y1) (x2-x1)*(x2-x1))] должен быть меньше суммы и больше модуля разности радиусов, рассматриваемых окружностей.Программа написана на языке программирования С в среде компилятора Visual Studio 2010. Программа обладает рядом функциональных особенностей: u Удобство в использовании u Доступность для любого пользователя Для реализации алгоритма нахождения принадлежности были использованы переменные типа double.Используемые функции: Функции Описание void R0(double) Проверяет значение каждого введенного радиуса. Радиус не должен быть меньше или равен нулю bool intersection (double x1,double y1,double R1,double x2,double y2,double R2,double x3,double y3,double R3, bool f) Определяет, происходит ли попарное пересечение bool ONESTRAIGHT (double x1,double y1,double R1,double x2,double y2,double R2,double x3,double y3,double R3, bool f) Определяет, лежат ли центры окружностей на одной прямой void if3(double x1,double y1,double R1,double x2,double y2,double R2,double x3,double y3,double R3,double x,double y) Проверяет принадлежность введенной точки double length (double, double, double, double) Определяет длину между соседними центрами окружностей 1) Последовательно введите координаты и центров окружностей и радиусы. 2) Если радиус меньше или равен 0, введите новое значение 3) Если появилась просьба повторного ввода координат центров окружностей и радиуса, значит, какое-то из условий не было выполнено, поэтому необходимо выполнить запрос.Во введении передо мной стояла задача разработки рабочей программы для вычисления принадлежности точки области, находящейся внутри трех окружностей, центры которых лежат на одной прямой. На основе курсовой работы можно сделать вывод, что приложение, разработанное в Visual Studio, позволяет создать удобный интерфейс для определения принадлежности точки области внутри трех окружностей.
План
Содержание
Введение
Глава 1
1.1 Постановка задачи
1.2 Решение задачи
Глава 2
Вывод
2.3 Описание структуры программы
Используемые библиотеки: “stdafx.h”, , , ;
Используемые функции: Функции Описание void R0(double) Проверяет значение каждого введенного радиуса. Радиус не должен быть меньше или равен нулю bool intersection (double x1,double y1,double R1,double x2,double y2,double R2,double x3,double y3,double R3, bool f) Определяет, происходит ли попарное пересечение bool ONESTRAIGHT (double x1,double y1,double R1,double x2,double y2,double R2,double x3,double y3,double R3, bool f) Определяет, лежат ли центры окружностей на одной прямой void if3(double x1,double y1,double R1,double x2,double y2,double R2,double x3,double y3,double R3,double x,double y) Проверяет принадлежность введенной точки double length (double, double, double, double) Определяет длину между соседними центрами окружностей
2.4 Инструкция пользователя
При запуске программы
1) Последовательно введите координаты и центров окружностей и радиусы.
Рисунок 1. Последовательное введение координат и радиуса
2) Если радиус меньше или равен 0, введите новое значение
Рисунок 2. Ошибка ввода радиуса
3) Если появилась просьба повторного ввода координат центров окружностей и радиуса, значит, какое-то из условий не было выполнено, поэтому необходимо выполнить запрос.
4) Введите координаты точки, принадлежность которой надо определить.
Рисунок 5. Вывод результата программа точка прямая окружностьВо введении передо мной стояла задача разработки рабочей программы для вычисления принадлежности точки области, находящейся внутри трех окружностей, центры которых лежат на одной прямой.
Результатом данной курсовой работы является приложение, которое полностью удовлетворяет поставленным задачам. С его помощью можно определить принадлежность любой точки заданной области, т.е. области внутри трех попарно пересекающихся окружностей.
На основе курсовой работы можно сделать вывод, что приложение, разработанное в Visual Studio, позволяет создать удобный интерфейс для определения принадлежности точки области внутри трех окружностей.
В дальнейшем программу можно модифицировать и применять для других более сложных задач.
Преимуществом данного приложения является то, что с его помощью можно решить задачу, не затрачивая много времени.
Список литературы
Введение
Целью данной курсовой работы является разработка рабочей программы для вычисления принадлежности точки заданной области.
Не всегда удобно делать вычисления вручную и нельзя при этом быть полностью уверенным в правильности своего решения. Именно поэтому электронные приложения намного удобнее и эффективнее.
Данное приложение актуально только для решения данной задачи, но т.к. его можно модифицировать, оно может быть полезно и для решения подобных.1) Декартовы координаты: сайт
{ if((y*y-2*y*y1<=R1*R1-(x-x1)*(x-x1)-y1*y1)||(y*y-2*y*y2<=R2*R2-(x- x2)*(x-x2)-y2*y2)||(y*y-2*y*y3<=R3*R3-(x-x3)*(x-x3)-y3*y3)) cout<<"Данная точка принадлежит заданной области"<<endl;
else cout<<"Данная точка не принадлежит заданной области"<<endl;