Построение эллипсоида в компьютерной геометрии
Описание канонического уравнения эллипсоида в декартовых координатах, совпадающих с осями деформации эллипсоида. Алгоритм формирования точек поверхности эллипсоида. Изучение алгоритма рисования эллипсоида. Описание интерфейса, тестирования программы.
Рубрика | Математика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.01.2017 |
Размер файла | 730,0 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
СОДЕРЖАНИЕ
1. Постановка задачи
2. Используемые алгоритмы
2.1 Алгоритм формирования точек поверхности эллипсоида
2.2 Алгоритм рисования эллипсоида
3. Описание программы
3.1 Диаграмма классов
3.2 Класс Program
3.3 Класс основное окно приложения - EllipsoidForm
3.4 Класс диалогового окна EllipsoidParametersForm
3.5 Класс Ellipse - описание эллипса
3.6 Класс CuttingEllipse - описание секущего эллипса
3.7. Класс Ellipsoid - описание эллипсоида
3.8 Класс Vector - вектор, содержащий координату
4. Тестирование программы
4.1 Описание интерфейса
4.2 Пример выполнения программы
Список использованных источников
1. ПОСТАНОВКА ЗАДАЧИ
эллипсоид координаты рисование программа
Необходимо построить эллипсоид. Каноническое уравнение эллипсоида в декартовых координатах, совпадающих с осями деформации эллипсоида, имеет следующий вид:
где a, b и c - произвольные положительные числа, определяющие длины полуосей эллипсоида соответственно по осям координат x, y и z (Рис. 1).
Рисунок 1 - Эллипсоид
Примем за основу, что полуоси эллипсоида относятся в соответствии с соотношением a?b?c. Для построения эллипсоида будем использовать декартову систему координат в пространстве
Рисунок 2 - Декартова система координат
Здесь ось X направлена влево и вниз, ось Y - вправо, ось Z - вверх.
Будем строить эллипсоид по точкам с использованием секущих плоскостей. Пересекая эллипсоид плоскостями z=h(-c?h?c), получим в сечении эллипсы
с полуосями
, .
По аналогии с географией будем считать, что секущие плоскости определяют параллели, секущую плоскость, проходящую через нулевую точку и параллельную осям координат x и y назовем экватором, а линии, проходящие через полюса на оси z - меридианами. В этом случае для построения эллипсоида будет достаточно определить координаты x, y, и z точек пересечения параллелей и меридианов.
Примем за основу, что условный «северный» полюс эллипсоида (значение z = c при нулевых значениях x и y) имеет значение и = 0, а условный «южный» полюс - и = 180. В секущих плоскостях точка x = a, y = 0 будет иметь значение = 0, точка x = 0, y = b - = 90, точка x = -a, y = 0 - = 180, а точка x = 0, y = -b - = 270.
2. ИСПОЛЬЗУЕМЫЕ АЛГОРИТМЫ
2.1 Алгоритм формирования точек поверхности эллипсоида
Алгоритм реализован следующим образом:
1. При выборе пункта меню «Эллипсоид» - «Задать параметры» высвечивается диалоговое окно ввода параметров, в котором задаются следующие значения - длины полуосей a, b и с и шаг разбиения в градусах по параллелям и меридианам.
2. Создается объект коллекции параллелей Dictionary, в котором в качестве ключа используется значение параллелей в градусах от 0 до 180 с заданным шагом разбиения, а в качестве значений - также объекты Dictionary, представляющие собой коллекции ключ-значение точек на секущих эллипсах (коллекции меридианов для данного сечения). Ключем является угол в градусах от 0 до (360 - шаг разбиения) относительно положительного направления оси x, а значением - вектор [x, y, z] декартовой координаты точки.
3. Изменяя значение и от 0 до 180 с заданным шагом разбиения по параллелям, создаем объекты Dictionary, в которые добавляем вычисленные координаты точек поверхности эллипсоида для данного сечения (значения пересечения i-ой параллели с j-ым меридианом) от 0 до (360 - шаг разбиения) с заданным шагом разбиения по меридианам. Затем добавляем коллекцию точек i-го сечения в коллекцию параллелей.
4. Когда пройдены все значения, считаем, что мы сформировали коллекцию точек эллипсоида.
2.2 Алгоритм рисования эллипсоида
1. Для рисования используем элемент отображения Chart.
2. Устанавливаем режимы отображения - предельные значения осей координат, цвет отображения осей координат, меридианов и параллелей.
3. Рисуем оси координат - ось z направлена вверх, ось y - вправо, ось x - влево и вниз.
4. Проходя по всем элементам коллекции коллекций триад координат [x, y, z], выполняем перерасчет пространственных координат в координаты на плоскости следующим образом: X1 = Y - X*cos(30); Y1=Z - X*sin(30), где X, Y и Z - пространственные координаты, а X1 и Y1 - координаты на плоскости.
5. Добавляем полученные координаты в соответствующие коллекции параллелей и меридианов элемента отображения Chart.
3. ОПИСАНИЕ ПРОГРАММЫ
Программа написана на языке программирования C# с использованием IDE Visual Studio 2013 и состоит из следующих модулей.
3.1 Диаграмма классов
Программа состоит из следующих основных классов (Рис. 3.). Здесь не показан класс Program, так как он был полностью сгенерирован IDE Visual Studio и в него изменения не вносились.
Рисунок 3 - Диаграмма классов
3.2 Класс Program
Как уже указывалось выше, класс Program был сгенерирован IDE и в него изменения не вносились. Он содержит одну статическую функцию Main и выполняет единственную задачу - создать объект основного окна программы.
3.3 Класс основное окно приложения - EllipsoidForm
Состоит из двух модулей - EllipsoidForm.cs и EllipsoidForm.Designer.cs. Первый был модифицирован для решения поставленной задачи, второй - полностью сгенерирован IDE.
Рисунок 4 - Главное окно программы
Модуль EllipsoidForm.cs содержит следующие поля и функции (см.таблицы 1 и 2).
Таблица 1 - Поля класса EllipsoidForm
Название поля |
Тип |
Описание |
|
_semiaxisA |
double |
Длина полуоси эллипсоида по оси X |
|
_semiaxisB |
double |
Длина полуоси эллипсоида по оси Y |
|
_semiaxisC |
double |
Длина полуоси эллипсоида по оси Z |
|
_gridStep |
double |
Шаг сетки элемента отображения Chart |
|
_parallels |
int |
Количество сегментов между двумя параллелями |
|
_meridians |
int |
Количество меридианов |
Таблица 2 - Функции класса EllipsoidForm
Название |
Тип |
Описание |
|
EllipsoidForm |
|
Конструктор класса |
|
ToolStripMenuItem_Ellipsoid_Options_Click |
void |
Обработчик события вызова диалогового окна. Создает и отображает диалоговое окно выбора параметров построения эллипсоида. |
|
ToolStripMenuItem_Ellipsoid_Quit_Click |
void |
Обработчик события завершения работы |
|
InitChart |
void |
Инициализация элемента отображения Chart |
|
Calculate |
void |
Перерасчет вычисленных точек на поверхности эллипсоида и их отображение. |
3.4 Класс диалогового окна EllipsoidParametersForm
Состоит из двух модулей - EllipsoidparametersForm.cs и EllipsoidParametersForm.Designer.cs. Первый был модифицирован для решения поставленной задачи, второй - полностью сгенерирован IDE.
Рисунок 5 - Диалоговое окно выбора параметров
Модуль EllipsoidParametersForm.cs содержит следующие функции и свойства (см. таблицу 3).
Таблица 3 - Функции и свойства класса EllipsoidParametersForm
Название |
Тип |
Описание |
|
EllipsoidParametersForm |
|
Конструктор класса |
|
SemiaxisA |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипсоида по оси X |
|
SemiaxisB |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипсоида по оси Y |
|
SemiaxisC |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипсоида по оси Z |
|
ParallelGrid |
int |
Свойство. Возвращает и устанавливает шаг разбиения по параллелям в градусах |
|
MeridianGrid |
int |
Свойство. Возвращает и устанавливает шаг разбиения по меридианам в градусах |
3.5 Класс Ellipse - описание эллипса
Модуль Ellipse.cs содержит описание класса эллипса Ellipse, который содержит следующие поля, свойства и функции (см. таблицы 4 и 5).
Таблица 4 - Поля класса Ellipse
Название поля |
Тип |
Описание |
|
_semiaxisA |
double |
Длина полуоси эллипсоида по оси X |
|
_semiaxisB |
double |
Длина полуоси эллипсоида по оси Y |
|
Angle |
enum |
Определяет в радианах или градусах задаются аргументы функций |
Таблица 5 - Функции и свойства класса Ellipse
Название |
Тип |
Описание |
|
Ellipse |
|
Конструктор по умолчанию |
|
Ellipse(double semiaxisA, double semiaxisB) |
|
Конструктор. Выполняет инициализацию экземпляра класса эллипса с заданными значениями полуосей. |
|
SemiaxisA |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипса по оси X |
|
SemiaxisB |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипса по оси Y |
|
Eccentricity |
double |
Свойство. Возвращает эксцентриситет эллипса. |
|
FocalLength |
double |
Свойство. Возвращает фокальное расстояние эллипса. |
|
FocalParameter |
double |
Свойство. Возвращает фокальный параметр эллипса. |
|
PeryFocalLength |
double |
Свойство. Возвращает значение перифокального расстояния эллипса |
|
ApoFocalLength |
double |
Свойство. Возвращает значение апофокального расстояния эллипса |
|
Perimeter |
double |
Свойство. Возвращает приблизительное значение периметра эллипса |
|
Square |
double |
Свойство. Возвращает значение площади эллипса |
|
this[double fi, Angle angles] |
Vector |
Индексатор. Возвращает вектор с координатами точки на поверхности эллипса. Виртуальный. Может быть переопределен в порожденных классах |
|
X(double fi, Angle angles = Angle.Radian) |
double |
Метод. Выполняет вычисление координаты X на поверхности эллипса в зависимости от заданного угла относительно координаты X. |
|
Y(double fi, Angle angles = Angle.Radian) |
double |
Метод. Выполняет вычисление координаты Y на поверхности эллипса в зависимости от заданного угла относительно координаты X. |
|
Ro(double fi, Angle angles) |
double |
Метод. Выполняет вычисление радиус-вектора эллипса в зависимости от заданного угла относительно координаты X. Виртуальный. Может быть переопределен в порожденных классах |
|
Values(int points) |
Dictionary<double, Vector> |
Метод. Формирует коллекцию пар угол/координата для эллипса |
3.6 Класс CuttingEllipse - описание секущего эллипса
Класс CuttingEllipse, порожденный из класса Ellipse, представляющий собой описание объекта эллипса сечения эллипсоида по определенной параллели.
Содержит следующие поля, свойства и функции (см.таблицы 6 и 7).
Таблица 6 - Поля класса CuttingEllipse
Название поля |
Тип |
Описание |
|
_semiaxisA |
double |
Длина полуоси эллипса по оси X. Унаследован от Ellipse |
|
_semiaxisB |
double |
Длина полуоси эллипса по оси Y. Унаследован от Ellipse |
|
Angle |
enum |
Определяет в радианах или градусах задаются аргументы функций. Унаследован от Ellipse |
|
_parallel |
double |
Значение параллели в радианах. |
|
_valueZ |
double |
Значение координаты Z. |
Таблица 7 - Функции и свойства класса CuttingEllipse
Название |
Тип |
Описание |
|
CuttingEllipse |
|
Конструктор по умолчанию |
|
CuttingEllipse(double semiaxisA, double semiaxisB, double semiaxesC, double valueZ) |
|
Конструктор. Выполняет инициализацию экземпляра класса эллипса с заданными значениями полуосей и значением высоты секущей плоскости. |
|
CuttingEllipse(double semiaxisA, double semiaxisB, double semiaxesC, double parallel, Angle angles) |
|
Конструктор. Выполняет инициализацию экземпляра класса эллипса с заданными значениями полуосей и значением параллели. |
|
SemiaxisA |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипсоида по оси X. Унаследован от Ellipse |
|
SemiaxisB |
double |
Свойство. Возвращает и устанавливает длину полуоси эллипсоида по оси Y. Унаследован от Ellipse |
|
Eccentricity |
double |
Свойство. Возвращает эксцентриситет эллипса. Унаследован от Ellipse |
|
FocalLength |
double |
Свойство. Возвращает фокальное расстояние эллипса. Унаследован от Ellipse |
|
FocalParameter |
double |
Свойство. Возвращает фокальный параметр эллипса. Унаследован от Ellipse |
|
PeryFocalLength |
double |
Свойство. Возвращает значение перифокального расстояния эллипса. Унаследован от Ellipse |
|
ApoFocalLength |
double |
Свойство. Возвращает значение апофокального расстояния эллипса. Унаследован от Ellipse |
|
Perimeter |
double |
Свойство. Возвращает приблизительное значение периметра эллипса. Унаследован от Ellipse |
|
Square |
double |
Свойство. Возвращает значение площади эллипса. Унаследован от Ellipse |
|
ParallelRadian |
double |
Свойство. Возвращает значение параллели эллипсоида в радианах |
|
ParallelGradus |
double |
Свойство. Возвращает значение параллели эллипсоида в градусах |
|
Z |
double |
Свойство. |
|
this[double fi, Angle angles] |
Vector |
Индексатор. Возвращает вектор с координатами точки на поверхности эллипса. Переопределен |
|
X(double fi, Angle angles = Angle.Radian) |
double |
Метод. Выполняет вычисление координаты X на поверхности эллипса в зависимости от заданного угла относительно координаты X. Унаследован от Ellipse |
|
Y(double fi, Angle angles = Angle.Radian) |
double |
Метод. Выполняет вычисление координаты Y на поверхности эллипса в зависимости от заданного угла относительно координаты X. Унаследован от Ellipse |
|
Ro(double fi, Angle angles) |
double |
Метод. Выполняет вычисление радиус-вектора эллипса в зависимости от заданного угла относительно координаты X. Переопределен |
|
Values(int points) |
Dictionary<double, Vector> |
Метод. Формирует коллекцию пар угол/координата для эллипса. Унаследован от Ellipse |
3.7 Класс Ellipsoid - описание эллипсоида
Класс Ellipsoid представляющий собой описание объекта. Содержит следующие поля, свойства и функции (см.таблицы 8 и 9).
Таблица 8 - Поля класса Ellipsoid
Название поля |
Тип |
Описание |
|
_semiaxisA |
double |
Длина полуоси эллипсоида по оси X |
|
_semiaxisB |
double |
Длина полуоси эллипсоида по оси Y |
|
_semiaxisC |
double |
Длина полуоси эллипсоида по оси Z |
|
_parallelsCount |
int |
Количество сегментов между двумя параллелями |
|
_meridiansCount |
int |
Количество меридианов |
|
_parallelDiscretization |
ParallelDiscretization |
Определяет, разбиение в градусах или в радианах |
|
ParallelDiscretization |
enum |
Определяет, разбиение в градусах или в радианах |
Таблица 9 - Функции и свойства класса Ellipsoid
Название |
Тип |
Описание |
|
Ellipsoid(double semiaxisA, double semiaxisB, double semiaxisC) |
|
Конструктор. Задаются только длины полуосей, остальные параметры по умолчанию |
|
Ellipsoid(double semiaxisA, double semiaxisB, double semiaxisC, int parallelsCount, int meridiansCount, ParallelDiscretization parallelDiscretization = ParallelDiscretization.Gradus) |
|
Конструктор. Задаются длины полуосей, количество секторов между параллелями, количество меридианов и вид разбиения - в градусах или линейное |
|
SemiaxisA |
double |
Свойство. Возвращает длину полуоси эллипсоида по оси X |
|
SemiaxisB |
double |
Свойство. Возвращает длину полуоси эллипсоида по оси Y |
|
SemiaxisC |
double |
Свойство. Возвращает длину полуоси эллипсоида по оси Z |
|
ParallelsCount |
int |
Свойство. Возвращает количество секторов между параллелями |
|
MeridiansCount |
int |
Свойство. Возвращает количество меридианов. |
|
ParallelDiscretization |
ParallelDiscretization |
Свойство. Возвращает вид разбиения - в градусах или линейное |
|
CreateEllipsoid |
Dictionary<double, Dictionary<double, Vector>> |
Метод. Выполняет расчет точек координат поверхности эллипсоида. |
3.8 Класс Vector - вектор, содержащий координату
Класс Vector представляющий собой вектор, содержащий значение координаты.
Содержит следующие поля, свойства и функции (см.таблицы 10 и 11).
Таблица 10 - Поля класса Vector
Название поля |
Тип |
Описание |
|
_vector |
double[] |
Массив, содержащий координаты |
Таблица 11 - Функции и свойства класса Vector
Название |
Тип |
Описание |
|
Vector(int length = 3) |
|
Конструктор. Создает вектор координат. |
|
Length |
int |
Свойство. Возвращает текущую длину вектора |
|
this[int index] |
double |
Индексатор. Возвращает и устанавливает координату по заданному индексу |
|
X |
double |
Свойство. Возвращает и устанавливает координату X. |
|
Y |
double |
Свойство. Возвращает и устанавливает координату Y. |
|
Z |
double |
Свойство. Возвращает и устанавливает координату Z. |
|
Ro |
double |
Свойство. Возвращает значение радиус-вектора. |
|
Teta |
double |
Свойство. Возвращает значение возвышения Teta. |
|
Fi |
double |
Свойство. Возвращает значение азимута Fi. |
|
operator + (Vector v1, Vector v2) |
Vector |
Оператор + Выполняет сложение двух векторов |
|
operator - (Vector v1, Vector v2) |
Vector |
Оператор - Выполняет вычитание двух векторов |
|
operator * (Vector v, double val) |
Vector |
Оператор * Выполняет умножение вектора на число |
|
operator * (double val, Vector v) |
Vector |
Оператор * Выполняет умножение вектора на число |
|
operator / (Vector v, double val) |
Vector |
Оператор / Выполняет деление вектора на число |
4 ТЕСТИРОВАНИЕ ПРОГРАММЫ
4.1 Описание интерфейса
После запуска программы выбирается пункт меню «Эллипсоид» - «Задать параметры», после чего появляется диалоговое окно, в котором вводятся необходимые параметры и нажимается кнопка «Принять». После расчета точек на экране появляется изображение эллипсоида.
Пример задания параметров см. рис.6.
Рисунок 6 - Задание параметров отображения
4.2 Пример выполнения программы
Результат работы программы представлен на рис. 7.
Рисунок 7 - Результат выполнения программы
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Гуриков С. Р. Введение в программирование на языке Visual C#. - Инфра-М, 2013. - 448 c.
2. Джейсон, Прайс; Майк, Гандэрлой Visual C# .NET. Полное руководство. - М.: КОРОНА принт., 2009. - 960 c.
3. Мартин Р. С., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. - М.: Символ-Плюс, 2011. - 768 c.
4. Рихтер, Джефри CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. - СПБ.: Питер, 2007. - 656 c.
Размещено на Allbest.ru
...Подобные документы
Алгоритм построения минимального остовного дерева. Последовательность выполнения алгоритма Прима, его содержание и назначение. Процедура рисования графа. Порядок составления и тестирования программы, ее интерфейс, реализация и правила эксплуатации.
курсовая работа [225,0 K], добавлен 30.04.2011Основные правила расчета значений дифференциального уравнения. Изучение выполнения оценки погрешности вычислений, осуществления аппроксимации решений. Разработка алгоритма и написание соответствующей программы. Построение интерполяционного многочлена.
курсовая работа [212,6 K], добавлен 11.12.2013Форма для ввода целевой функции и ограничений. Характеристика симплекс-метода. Процесс решения задачи линейного программирования. Математическое описание алгоритма симплекс-метода. Решение задачи ручным способом. Описание схемы алгоритма программы.
контрольная работа [66,3 K], добавлен 06.04.2012Классификация различных точек поверхности. Омбилические точки поверхности. Строение поверхности вблизи эллиптической, параболической и гиперболической точек. Линии кривизны поверхности и омбилические точки. Поверхность, состоящая из омбилических точек.
дипломная работа [956,7 K], добавлен 24.06.2015Обобщенные координаты, силы и скорости. Условия равновесия системы в обобщенных координатах. Уравнения Лагранжа. Системы с голономными связями (геометрические и интегрируемые дифференциальные). Доказательство уравнения движения механической системы.
презентация [1,4 M], добавлен 26.09.2013Решение системы трех уравнений с тремя неизвестными при помощи определителей. Исследование системы на совместность, составление канонического уравнения эллипса. Изучение функции методами дифференциального исчисления, поиск точки разрыва функции.
контрольная работа [1,1 M], добавлен 16.04.2010История интегрального исчисления. Определение и свойства двойного интеграла. Его геометрическая интерпретация, вычисление в декартовых и полярных координатах, сведение его к повторному. Применение в экономике и геометрии для вычисления объемов и площадей.
курсовая работа [2,7 M], добавлен 16.10.2013Теория инвариантов уравнения линии второго порядка от трех переменных, определение канонического уравнения. Общий пример решения задачи на определение вида и расположения поверхности, заданной относительно декартовой прямоугольной системы координат.
курсовая работа [1,1 M], добавлен 02.06.2013Изучение конкретного раздела дискретной математики. Решение 5-ти задач по изученной теме с методическим описанием. Методика составления и реализация в виде программы алгоритма по изученной теме. Порядок разработки программного интерфейса и руководства.
курсовая работа [110,2 K], добавлен 27.04.2011Минимальное остовное дерево связного взвешенного графа и его нахождение с помощью алгоритмов. Описание алгоритма Краскала, возможность строить дерево одновременно для нескольких компонент связности. Пример работы алгоритма Краскала, код программы.
курсовая работа [192,5 K], добавлен 27.03.2011Задача на вычисление скалярного произведения векторов. Нахождение модуля векторного произведения. Проверка коллинеарности и ортогональности. Составление канонического уравнения эллипса, гиперболы, параболы. Нахождение косинуса угла между его нормалями.
контрольная работа [102,5 K], добавлен 04.12.2013Алгоритм, использующий метод Магу-Вейссмана. Общие сведения, описание, вызов и загрузка, функциональное назначение и программный код программы. Описание логической структуры и инструкция пользователю, решение контрольных примеров раскраски графа.
курсовая работа [350,5 K], добавлен 20.12.2009Искривленность пространства. Изучение "параллельных прямых" на поверхности планеты. Первая и вторая основная квадратичная форма. Классификация точек поверхности. "Мыльные пленки", возникающие на замкнутых контурах. Нахождение средних кривизн поверхностей.
курсовая работа [2,1 M], добавлен 11.03.2014Вычисление траектории на плоскости в случае декартовых координат, ортогональных и изогональных траекторий семейства. Графическое решение дифференциального уравнения первого порядка, построение ортогональных траекторий в задачах картографии, навигации.
курсовая работа [542,6 K], добавлен 25.06.2014Поверхности второго порядка аналитической геометрии. Свойства гиперболического параболоида, порядок разыскания его прямолинейных образующих. Пример решения уравнения прямолинейных образующих для заданной поверхности гиперболического параболоида.
курсовая работа [2,5 M], добавлен 26.05.2019Основные свойства кривых второго порядка. Построение кривой в канонической и общей системах координат. Переход уравнения поверхности второго порядка к каноническому виду. Исследование формы поверхности методом сечений и построение полученных сечений.
курсовая работа [166,1 K], добавлен 17.05.2011Вычисление корня функции нелинейного уравнения методом деления отрезка пополам. Способы ввода, вывода и организации данных. Модульная организация программы. Разработка блок-схемы алгоритма задачи. Порядок создания программы на алгоритмическом языке.
реферат [30,0 K], добавлен 28.10.2010Изучение основных вопросов теории графов и области ее применения на практике. Разработка алгоритма кластеризации по предельному расстоянию и построение минимального остовного дерева каждого кластера. Результаты тестирований работы данного алгоритма.
курсовая работа [362,9 K], добавлен 24.11.2010Нахождение минимального пути от фиксированной до произвольной вершины графа с помощью алгоритма Дейкстры, рассмотрение основных принципов его работы. Описание блок-схемы алгоритма решения задачи. Проверка правильности работы разработанной программы.
курсовая работа [495,4 K], добавлен 19.09.2011Краткая история изучения циклоиды. Геометрическое определение, свойства и особенности построения циклоиды. Параметрическое уравнение циклоиды и уравнение в декартовых координатах. Задачи на нахождение частей циклоиды и фигур, образованных циклоидой.
курсовая работа [1,1 M], добавлен 16.01.2011