- •Слайд 3 –Системы координат
- •Слайд 4–Системы координат
- •Слайд 5–Аффинная система координат
- •Слайд 6–Полярная система координат
- •Слайд 7–Цилиндрическая система координат
- •Слайд 8–Сферическая система координат
- •Слайд 9–Однородная система координат
- •Слайд 11 – Система координат OpenGl
- •Слайд 12 – Параллельная проекция
- •Слайд 13 – Перспективная проекция
- •Void glFrustum(gLdouble left, gLdouble right, gLdouble bottom, gLdouble top, gLdouble near, gLdouble far);
- •Void gluPerspective(gLdouble fovy, gLdouble aspect, gLdouble near, gLdouble far);
Слайд 9–Однородная система координат
Однородные координаты - это математический механизм, связанный с определением положения точек в пространстве. Привычный аппарат декартовых координат, не подходит для решения некоторых важных задач в силу следующих соображений:
• В декартовых координатах невозможно описать бесконечно удаленную точку. А многие математические и геометрические концепции значительно упрощаются, если в них используется понятие бесконечности. Например, "бесконечно удаленный источник света" .
• С точки зрения алгебраических операций, декартовы координаты не позволяют провести различия межу точками и векторами в пространстве. Действительно, (1,-2,5) - это направление или точка?
• Невозможно использовать унифицированный механизм работы с матрицами для выражения преобразований точек. С помощью матриц 3x3 можно описать вращение и масштабирование, однако описать смещение (x=x+a) нельзя.
• Аналогично, декартовы координаты не позволяют использовать матричную запись для задания перспективного преобразования (проекции) точек.
A(x, y, w),
Как видно из вышесказанного двумерные преобразования имеют различный вид. Сдвиг реализуется сложением, а масштабирование и поворот - умножением. Это различие затрудняет формирование суммарного преобразования и устраняется использованием двумерных однородных координат точки, имеющих вид: (х,y,w). Здесь w -произвольный множитель, не равный 0. Число w так же называется масштабным множителем.
Двумерные декартовые координаты точки получаются из однородных делением на множитель w.
Однородные координаты для 2D случая можно представить как промасштабированные с коэффициентом w значения двумерных координат, расположенные в плоскости с Z = w.
Слайд 11 – Система координат OpenGl
Графический вывод обычно осущестсвляется в некоторую прямоугольную область экрана или окна. В OpenGL-визуализации эта область называется порт вывода. Именно в этой прямоугольной области будет размещено библиотекой сформированное изображение. Его размеры определяются относительно левого верхнего угла окна и измеряются в пикселах. Для определения порта вывода приложение должно отследить событие изменения размеров окна и определить порт вывода с использованием функции:
void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
Аргументы (x, y) определяют положение верхнего левого угла порта вывола, а width и height -- его размеры. По умолчанию библиотека растягивает порт вывода на всё OpenGL-окно.
Прежде чем быть отображённой на экране вершина, заданная в системе координат сцены должна пройти процесс проецирования. Для описания и проведения преобразований систем координат в библиотеке OpenGL используется матричный аппарат. Сама система координат и ее преобразования описываются матрицами в так называемых однородных координатах.
Во-первых, вершина преобразуется в матрицу 1X4, в которой первые три элемента представляют собой координаты x, y, z. Четвёртое число - масштабный коэффициент w, который обычно равен 1.0. Вершина домножается на видовую матрицу, которая описывает преобразования видовой системы координат. Получаем вершину в координатах вида. Она в свою очередь домножается на матрицу проекций и получаем вершину в координатах проекции. На этом этапе некоторве вершины отбрасываются (из-за непопадания в объём визуализации). Затем вершины нормализуются для передачи перспективы (если координата w не равна 1.0). Окончательное проецирование вершины на двумерную поверхность экрана выполняется библиотекой OpenGL самостоятельно и вмешаться в этот процесс нельзя.
Матрица проекций отвечает за то, какой объём пространства будет визуализироваться, каким образом вершины графических примитивов будут спроецированы на двумерную поверхность экрана монитора. Преобразования матрицы проекций ведут к тому, что все изображение будет изменяться (масштабироваться, перемещаться или вращаться). В OpenGL возможно использование двух режимов матрицы проекций: перспективная и ортографическая.