- •Содержательная и формальная постановки задачи
- •Структура решения
- •Моделирование поверхности
- •Программное представление поверхности:
- •Геометрические преобразования
- •Определение цвета точек поверхности
- •Определение цвета точки
- •Вычисление нормали поверхности в данной точке
- •Определение косинуса угла между направлением нормали и направлением на источник света (наблюдателя)
- •Определение косинуса угла между нормалью и векторов источника света
- •Подсчёт нормалей можно осуществить с помощью 2 способов:
- •Определение цвета сегмента
- •Проецирование
- •Визуализация
- •1.Платформа .Net
- •Описание реализации применяемых методов
- •Моделирование поверхности в исходном положении
- •Геометрические преобразования
- •Определение цвета сегмента поверхности
- •Визуализация
- •Проецирование.
- •Визуализация.
- •Руководство пользователя
- •Результаты
-
Моделирование исходной поверхности.
-
Геометрическое преобразование.
-
Определение цветов точек поверхности.
-
Проецирование.
-
Визуализация.
Приведем краткое описание данных классов.
Класс Library – класс-библиотека, содержащий необходимые для геометрических преобразований функции.
|
Метод/свойство/функция |
Описание |
|
NewellMethod |
Функция, считающая нормаль сегмента |
|
OrthogonalProj_XOY |
Функция, задающая матрицу ортогонального проецирования |
|
ScalarMult |
Функция, считающая скалярное произведение двух векторов |
|
VectorLen |
Функция, вычисляющая длину вектора |
|
ZRotateMatrix |
Функция, задающая матрицу поворота вокруг оси х |
|
YRotateMatrix |
Функция, задающая матрицу поворота вокруг оси у |
|
XRotateMatrix |
Функция, задающая матрицу поворота вокруг оси z |
Класс Equations – содержит параметрические уравнения различных поверхностей, инкапсулированные в методы.
|
Метод/свойство |
Описание |
|
Helicoid |
Инкапсулирует параметрическое уравнение поверхности «Геликоид» |
Класс GraphicsHelper – вспомогательный класс, содержащий некоторые методы, используемые для выполнения геометрических преобразований.
|
Метод/свойство |
Описание |
|
BaseMatrix |
Поле, хранящее матрицу, накапливающую геометрические преобразования |
|
CalculateScreen |
Метод, выполняющий вычисление экранных координат точки |
|
ProjectXY |
Метод, выполняющий проецирование точки на плоскость XOY |
|
Rotate |
Метод, выполняющий преобразования поворота |
Класс Figure – представляет полигонально заданную поверхность.
|
Метод/свойство |
Описание |
|
m_Polygons |
Поле, хранящее массив полигонов поверхности |
|
InnerColor |
Свойство, хранящее внутренний цвет заливки поверхности |
|
OuterColor |
Свойство, хранящее внешний цвет заливки поверхности |
|
Calculate |
Метод, инициирующий вычисление всеми полигонами их положения |
|
Figure |
Конструктор класса. Принимает в качестве параметра массив точек поверхности, и выполняет построение полигонов на этих точках |
|
Fill |
Метод, выполняющий визуализацию поверхности, при этом выполняется заполнение полигонов с использованием flat-сглаживания |
|
Stroke |
Метод, выполняющий визуализацию каркаса поверхности |
Класс Polygon – представляет собой отдельный полигон поверхности
|
Метод/свойство |
Описание |
|
Points |
Свойство, хранящее массив точек вершин данного полигона |
|
ScreenPoints |
Свойство, хранящее массив экранных точек вершин данного полигона |
|
Calculate |
Метод, выполняющий геометрические преобразования точек вершин полигона и вычисляющий их экранные координаты |
|
CalculateColor |
Метод, выполняющий вычисление цвета закраски полигона |
|
Fill |
Метод, выполняющий закраску полигона |
|
Polygon |
Конструктор класса |
|
Stroke |
Метод, выполняющий визуализацию каркаса полигона |
Класс Point3D – представляет точку в трехмерном пространстве
|
Метод/свойство |
Описание |
|
X |
Свойство, хранящее координату X точки |
|
Y |
Свойство, хранящее координату Y точки |
|
Z |
Свойство, хранящее координату Z точки |
|
Point3D |
Конструктор класса |
Форма приложения представлена классом MainForm.
|
Метод/свойство |
Описание |
|
m_Figure |
Поле, хранящее объект Figure, представляющий поверхность |
|
ChangeColor |
Метод, вызываемый при изменении ползунков, определяющих цвет поверхности |
|
Draw |
Метод, осуществляющий визуализацию поверхности |
|
FigureChanged |
Метод, вызываемый при изменении ползунков, задающих параметры поверхности |
|
Rebuild |
Метод, выполняющий перепостроение поверхности на основании ее новых параметров |
|
FillTypeRadioChanged |
Метод, вызываемый при изменении способа визуализации поверхности |
|
xTrackBar_Scroll yTrackBar_Scroll zTrackBar_Scroll |
Методы, вызываемые при изменении значений ползунков, задающих углы поворота вокруг координатных осей |

