Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам - Программирование, компьютеры и кибернетика курсовая работа

Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам

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


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

«Программирование на языке высокого уровня»
«Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам»
Целью данного проекта - является закрепление материала, изложенного в курсе «Программирование на языке высокого уровня» на основе какой-либо обобщающей задачи. В качестве таковой была выбрана задача определения пирамиды с выпуклым основанием по данным N точкам.
Данная задача предполагает укрепление знаний в линейной алгебре и закрепление их в виде решения поставленной задачи на языке высокого уровня(Pascal)
Разработать подпрограмму для определения вершин пирамиды с выпуклым основанием по данным точкам.
Создание демонстрационной программы для показа найденного решения. А так же создание библиотеки для работы с векторами в пространстве.
Вектором называется направленный отрезок.
У вектора есть начало и есть конец. Обозначается вектор строчными латинскими буквами a, b, c, ... или указанием его начала и конца, на первом месте всегда указывается начало. На чертежах вектор отмечается стрелкой. Иногда слово «вектор» не пишут, а ставят стрелочку над буквенным обозначением.
Вектор AB и вектор CD называются одинаково направленными, если полупрямые AB и CD одинаково направлены
Вектор AB и вектор CD называются противоположно направленными, если полупрямые AB и CD противоположно направлены.
Абсолютной величиной вектора называется длина отрезка, изображающего вектор. Обозначается как |a| .
Вектором в пространстве называется направленный отрезок.
Координатами вектора с началом в точке A1(x1; y1; z1) и концом в точке A2(x2; y2; z2) называются числа x2-x1, y2-y1, z2-z1. Вектор обозначается в пространстве так:
Есть вектора a. Пусть A (x; y) - начло вектора, а A` (x`; y`) - конец вектора. Координатами вектора a называются числа a1=x-x`, a2=y-y`. Для обозначения того, что вектор a имеет координаты a1 и a2, используют запись a (a1; a2) или (a1; a2).
Абсолютная величина вектора a (a1; a2) равна
Если начало вектора совпадает с его концом, то это нулевой вектор , обозначается (0).
Суммой векторов a(a1; a2) и b(b1; b2) называется вектор c(a1+b1; a2+b2).
Для любых векторов a(a1; a2), b(b1; b2), c(с1; с2) справедливы равенства:
Теорема Каковы бы ни были три точки A, B и C, имеет место векторное равенство
Пусть A(x1; y1), B(x2; y2), C(x3; y3) - данные три точки.
Вектор AB имеет координаты (x2 - x1; y2 - y1), вектор BC имеет координаты (x3 - x2; y3 - y2). Следовательно, вектор AB + BCимеет координаты (x3 - x1;y3 - y1). А вектор AC имеет координаты (x3 - x1;y3 - y1). Значит, AC = AB+ BC. Теорема доказана.
Сложение векторов. Правило параллелограмма
Правилом параллелограмма сложения векторов называется следующий способ:
Пусть есть векторы AB и AC у которых начало вектора совпадает, а концы не совпадают
Достроим данный угол до параллелограмма, так что AC = BD и AB = CD.
Тогда AB + BD = AD, а так как BD = AC, то AB + AC = AD
Сложение векторов. Правило треугольника
Правилом треугольника сложения векторов называется следующий способ:
Пусть есть произвольные векторы a и b. Надо от конца вектора a отложить вектор b`, равный вектору b. Тогда вектор, начало которого совпадает с началом вектора a, а конец совпадет с концом вектора b`, будет суммой a + b.
Свойство умножения вектора на число
Абсолютная величина вектора лa равна |л| |a|. Направление вектора лa при a? 0 совпадает с направлением вектора a, если л>0, и противоположно направлению вектора a, если л<0.
Построим векторы OA и OB равные a и лa соответственно (O - начало координат). Пусть a1 и a2 - координаты вектора a. Тогда координатами точки A будут числа a1 и a2 координатами точки B - числа лa1 и лa2. Уравнение прямой OA имеет вид: бx + вy = 0.
Так как уравнению удовлетворяют координаты точки A (a1; a2), то ему удовлетворяют и координаты точки B (лa1; лa2). Отсюда следует, что точка B лежит на прямой OA. Координаты c1 и c2 любой точки C, лежащей на луче OA, имеют те же знаки, что и координаты a1 и a2 точки A, и координаты любой точки, которая лежит на луче, дополнительном к OA, имеют противоположные знаки.
Поэтому, если л > 0, то точка B лежит на луче OA, а следовательно, векторы a и лa одинаково направлены. Если л < 0, то точка B лежит на дополнительном луче и векторы a и лa противоположно направлены.
Абсолютная величина вектора лa равна:
Равные векторы имеют равные соответствующие координаты.
Рассмотрим два случая: 1) векторы не лежат на одной прямой.
Пусть есть вектор a с началом в точке A (x; y) и концом в точке A` (x`; y`). При параллельном переносе получаем вектор b, у которого тогда начало будет в точке B(x+c; y+d), а конец в точке B`(x`+c; y`+d). Отсюда видно, что оба вектора будут иметь одни и тебе координаты (x-x`; y-y`).
Пусть есть прямая l на которой лежат равные векторы AA` и BB`. A(x; y), A`(x`; y`), B(x1;y1) и B(x1`; y1`). Проведем прямую l1 параллельную l и отложим на ней вектор CD равный AA` и BB`, C (x0; y0) и D (x0`; y0`). Так как AA` = CD, из предыдущего пункта x-x`=x0-x0` и y-y`=y0-y0`. С другой стороны BB` = CD и x1-x1`=x0-x0`, y1-y1`=y0-y0`. Сравнивая равенства получаем x-x`=x1-x1` и y-y`=y1-y1`. Теорема доказана.
Произведение вектора a(a1; a2) на число л называется вектор (лa1; лa2), т.е. (a1; a2) л = (лa1; лa2).
Два ненулевых вектора называются коллинеарными, если они лежат на одной прямой или на параллельных прямых. Коллинеарные векторы либо одинаково направлены, либо противоположно направлены.
Если есть два отличных от нуля коллинеарных вектора, то существует число л такое, что
- это векторы, которые одинаково направлены и имеют одну и ту же абсолютную величину |b|. Значит, они равны:
Когда векторы a и b противоположно направлены аналогично заключаем, что
Любой вектор с можно представить в виде
Скалярным произведением векторов a (a1; a2) и a (b1; b2) называется число a1b1+a2b2.
Для любых векторов a (a1; a2), b (b1; b2), c (с1; с2)
Углом между ненулевыми векторами AB и AC называется угол ABC. Углом между любыми двумя ненулевыми векторами a и b называется угол между равными им векторами с общим началом.
Скалярное произведение векторов равно произведению их абсолютных величин на косинус угла между ними.
Пусть a и b - данные векторы и ц - угол между ними. Имеем:
Скалярное произведение ab таким образом, выражается через длины векторов a, b и a + b т. е. систему координат можно выбрать любую, а величина скалярного произведения не изменится. Выберем систему координат xy так, чтобы начало координат совпало с началом вектора a, а сам вектор лежал на положительной полуоси оси Ox. Тогда координатами вектора a будут числа |a| и 0, а координатами вектора a - |a| cos ц и |a| sin ц . По определению
Из теоремы следует, что если векторы перпендикулярны, то их скалярное произведение равно нулю.
Через прямую и не лежащую на ней точку можно провести плоскость, и при том только одну.
Пусть AB - данная прямая и С - не лежащая на ней точка. Проведем через точки A и С прямую. Прямые AB и AC различны, так как точка С не лежит на прямой AB. Проведем через прямые AB и AC плоскость б. Она проходит через прямую AB и точку С.
Докажем, что плоскость б, проходящая через прямую AB и точку С, единственна.
Допустим, существует другая, плоскость б.`, проходящая через прямую AB и точку С. По аксиоме о том, что если две различные плоскости имеют общую точку, то они пересекаются по прямой, проходящей через эту точку, плоскости б и б` пересекаются по прямой. Эта прямая должна содержать точки A, B, C. Но они не лежат на одной прямой. Что противоречит предположению. Теорема доказана.
Ломаная называется замкнутой, если ее концы соединены отрезком.
Если все звенья простой замкнутой ломаной не лежат на одной прямой, то это многоугольник. Тогда точки ломанной называются вершинами многоугольника, а звенья - сторонами многоугольника.
Многоугольник с n вершинами, называется n-угольником.
Многоугольник называется выпуклым, если он лежит в одной полуплоскости относительно любой прямой, содержащей его сторону.A1A2A3A4A5A6A7 - выпуклый многоугольник.
B1B2B3B4B5 - невыпуклый многоугольник.
Сумма углов выпуклого n-угольника равна 180°*(n-2).
Для 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 точек будет взята другая точка и проведена еще проверка на выпуклость многоугольника. И так пока не будут перебраны все возможные точки.
В случае удачной проверки на выпуклость программа выдаст сообщение о том, что были определены вершины пирамиды с выпуклым основанием
1 Function lengthOfVector(a:Coordinates):real;
2Назначение: возвращает длину вектора а ;
1) Function Scalar(a,b:Coordinates):real;
2Назначение: возвращает результат скалярного перемножение векторов а и b ;
1) Function angle(a,b:coordinates):real
2Назначение: возвращает значение косинуса угла(в радианах)
1 Procedure VECTMult(a,b:Coordinates;var c:Coordinates);
2Назначение: производит векторное перемножение вектора а и b и заносит результат в вектор с ;
7.Спецификация процедуры collinearity;
1) Function collinearity(a,b:Coordinates):boolean;
2Назначение: возвращает collinearity:=истина , если векторы а и b коллинеарные, иначе- collinearity:=ложь ;
1) Function MixeMult(a,b,c:Coordinates):real
2Назначение: возвращает MixeMult:= значение смешанного произведения векторов а и b
10.Спецификация процедуры coplanarity;
1) Function coplanarity(a,b,c:Coordinates):boolean
2Назначение: возвращает coplanarity :=истина ,если векторы а,b и c компланарны,иначе- coplanarity :=ложь .
Спецификация подпрограмм для определения вершин пирамиды
1) Procedure ploskost(a,b,c:coordinates;var ax,bx,cx,dx:real);;
2) Назначение: Строит по 3-м точкам уравнение плоскости вида Ax+By+Cz+D=0 и заносит в ax,bx,cx,dx соответствующие коэффициенты
3) Входные параметры:a,b,c,ax,bx,cx,dx;
4) Выходные параметры: ax,bx,cx,dx.
2.Спецификация функции proverka_na_ploskost;
1) function proverka_na_ploskost(var P:P_descriptor;var mno:mnoj; n:byte):boolean;;
2) Назначение: проверяет условие принадлежности n точек(указатели которых хранятся в множестве mno) к плоскости ,построенной с помощью процедуры ploskost,возращает значение истины в случае удачной проверки, иначе-ложь;
1) Function Vypuklost(var P:P_descriptor;mno:mnoj;n:byte):boolean;;
2) Назначение: Проверяет многоугольник на выпуклость, путем перебора n точек из множества mno ,формированием их в векторы и последующим векторным перемножением . Возвращает значение истины, если при все N точках знак векторного умножения сохраняется, иначе -ложь;
4.Спецификация функции FinDaPyramid;
1) Procedure FinDaPyramid(var P:P_descriptor;mno:mnoj);
2) Назначение: определяет вершины пирамиды с выпуклым основанием и выводит на дисплей, если же нет решений -выводит соотсветсвующее сообщение ;
-Построим по 3-м точкам уравнение плоскости
Уравнение каждой плоскости имеет вид: Ax + By + Cz + D = 0. Так что наша задача по заданным координатам 3-ех точек плоскости найти коэффициенты A, B, C и D. Эти коэффициенты находятся по формулам:
где x, y, z - координаты наших точек, а 1-2-3 это номера точек A-B-C.
Соответственно находим эти коэффициенты и подставляем их в формулу
--В итоге, получаем уравнение вида Ax + By + Cz + D = 0.
Подставим коэффициенты. Уравнение плоскости:
Далее, проверим 4 и 5 точку на принадлежность к этой плоскости:
Берем точку 4(0, 1, 2) и подставляем в уравнение -2 x + 10 y - 8 z + 6 = 0
Берем точку 5(7, 1, 1) и подставляем в уравнение -2 x + 10 y - 8 z + 6 = 0
-Далее проверим многоугольник на выпуклость.
Одним из критериев выпуклости является следующее. Многоугольник будет выпуклым, если для векторов, составляющих его периметр, выполняется условие: векторные произведение соседних векторов должны иметь одинаковый знак.
После последовательного выполнения векторного произведения, видим, что многоугольник выпуклый следовательно, данные 5 точек являются вершинами пирамиды с выпуклым основанием, вершины пирамиды:
(вычисление вершин пирамиды с выпуклым основанием и вывод их на дисплей)
пирамида вершина подпрограмма вектор
В курсовом проекте было предусмотрено следующее:
* создание библиотеки для работы с векторами в пространстве ;
* определение вершин пирамиды в с выпуклым основанием;
Структуры и алгоритмы обработки данных, представленных в виде пирамиды (максимальной или минимальной – по выбору пользователя). Преобразование массива в пирамиду. Включение элемента в пирамиду и удаление элемента из пирамиды. Вывод пирамиды на экран. курсовая работа [2,4 M], добавлен 16.03.2011
Проведение урока по теме: "Действия с векторами". Повторение правил действий над векторами и применение знаний предмета информатики для решения геометрических задач по готовым чертежам. Закрепление приобретенных навыков выполнения действий над векторами. разработка урока [531,8 K], добавлен 14.10.2010
История и термины теории графов. Описание алгоритма Дейкстры. Математическое решение проблемы определения кратчайшего расстояния от одной из вершин графа до всех остальных. Разработка программы на объектно-ориентированном языке программирования Delphi 7. контрольная работа [646,9 K], добавлен 19.01.2016
Разработка программного продукта для поиска максимально удалённых вершин в графе. Характеристика ориентированного, смешанного и изоморфного графов. Обзор способов представления графа в информатике. Алгоритм поиска пути. Графический интерфейс программы. курсовая работа [384,0 K], добавлен 10.01.2015
Проектування ієрархії класів геометричних об'єктів: точка, проста фігура, композиційна фігура, представлені частиною вершин і способами розрахунку інших вершин і ключових точок. Виконання операцій в різних системах координат з геометричними фігурами. курсовая работа [958,1 K], добавлен 16.02.2013
Создание базы данных для обеспечения автоматизации работы клуба собаководства. Определение информационных объектов и функциональных зависимостей. Информационно-логическая и даталогическая модели. Описание алгоритма работы БД. Отладка работы программы. контрольная работа [1008,0 K], добавлен 08.06.2014
Разработка проекта приложения, при помощи которого можно задать граф с любым количеством вершин и ребер, построить его графическое изображение, автоматически рассчитать ребра полного графа. Выбор состава программных средств. Руководство пользователя. курсовая работа [466,5 K], добавлен 21.11.2015
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Создание программы для определения вершин пирамиды с выпуклым основанием по данным точкам курсовая работа. Программирование, компьютеры и кибернетика.
Курсовая Сетевые Технологии В Эис Для Экономистов
Реферат На Тему Розквіт Македонії Та Її Гегемонія В Греції. Східний Похід Олександра Македонського Та Утворення Його Імперії
Реферат: Підготовка руки дитини до письма
Лабораторная работа: Приборы радиационной и химической разведки
Курсовая работа по теме Межпредметные связи на уроках технологии
Курсовая работа: Правовое регулирование рынка ценных бумаг в Российской Федерации
Реферат по теме Договор розничной купли-продажи
Дипломная работа по теме Проектирование одноэтажного промышленного здания деревообрабатывающей промышленности
Контрольная работа по теме Федеральная служба по финансовым рынкам как основной регулятор ценных бумаг
Реферат: Плоскопанельные мониторы и цифровой видеоинтерфейс
Налоговая Политика Рф Реферат
Реферат по теме Оптимизация содержания свиноматок
Курсовая работа: Исследование регионального рынка конкретного товара
Понятие и виды контрабанды в уголовном законодательстве
Реферат: Mothers And Daughters Essay Research Paper Mothers
Дене Тәрбиесі Және Спорт Тарихы Эссе
Основные Теории Происхождения Государства И Права Реферат
Реферат по теме Анализ выпуска и объемов продаж продукции
Контрольная работа: Инновации в сфере косметических услуг
Первобытные Люди Реферат
История развития российского гражданства - Государство и право реферат
Особенности стадии возбуждения уголовного дела - Государство и право курсовая работа
Территориальное планирование сетей телерадиовещания с учетом ЭМС РЭС на основе геоинформационных технологий - Коммуникации, связь, цифровые приборы и радиоэлектроника курсовая работа


Report Page