Курсовая работа: Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам
Ломаная называется замкнутой, если ее концы соединены отрезком.
Если все звенья простой замкнутой ломаной не лежат на одной прямой, то это многоугольник. Тогда точки ломанной называются вершинами многоугольника, а звенья – сторонами многоугольника.
Многоугольник с n вершинами, называется n-угольником.
Многоугольник называется выпуклым, если он лежит в одной полуплоскости относительно любой прямой, содержащей его сторону.A1A2A3A4A5A6A7 – выпуклый многоугольник.
B1B2B3B4B5 – невыпуклый многоугольник.
Выпуклые многоугольники. Свойство
Теорема.
Сумма углов выпуклого n-угольника равна 180°*(n-2).
Доказательство.
Нужно заметить, n ≥ 3.
Для n = 3 многоугольник превращается в треугольник и теорема справедлива.
Для n > 3 проведем n-3 диагонали: A2An, A3An, …, An-1An. Получим n-2 треугольника: Δ A1A2An, Δ A2A3An, …, An-2An-1An. Сумма углов всех треугольников равна сумме углов многоугольника. Так как сумма углов треугольнике равна 180 ° и число треугольников равно n – 2, то сумма всех углов многоугольника равна 180° * (n - 2). Теорема доказана.
ОПИСАНИЕ ОБЩЕГО АЛГОРИТМА
Пункт1.Пользователь вводит N точек.
Пункт2.Программа проверяет, лежат ли все данные точки в одной плоскости, если лежат-то решения нет, вершины пирамиды не будут найдены, а на дисплей выведется сообщение «точки лежат в одной плоскости».(переход к пункту 6)
Пункт3. Если все данные точки не лежат в одной плоскости, то программа берет N-1 точек (исключаемую точку принимая за возможную вершину пирамиды) и выполняет построение уравнения плоскости по 3-м точкам ,
Пункт4.Выполним проверку на принадлежность к данной плоскости оставшихся точек .В случае ,если хотя бы одна точка из оставшихся точек не принадлежит к плоскости, то переходим к пункту 6.
Пунтк5.Выполним проверку выпуклости многоугольника из полученной поверхности.( Проверка на выпуклость проверяется ,как условие сохранения знака векторного произведение смежных векторов). Если же проверка N-1 точек не даст того, что эти точки образуют плоскость, то из N точек будет взята другая точка и проведена еще проверка на выпуклость многоугольника. И так пока не будут перебраны все возможные точки.
В случае удачной проверки на выпуклость программа выдаст сообщение о том, что были определены вершины пирамиды с выпуклым основанием
Пункт6.вывод ответа
Описание структур данных
Для хранения точек был использован динамическая структура данных- односвязанный список. Элемент списка представляет собой запись с 2 полями:
-полем данных
-полем указателя на следующий элемент
В свою очередь поле данных представляет собой запись Coordinates с 3-я полями:x,y,z
Так же для работы со списком использовались дескрипторы ,которые представляли собой записи с 3-я полями