Слайды и текст доклада
Pic.1
3. Преобразования координат
Pic.2
Вектор в однородной форме
Pic.3
Переход к новой системе координат
Pic.5
Объектная система координат
Pic.6
Объектная система координат
Pic.7
Мировая система координат
Pic.8
Мировая система координат
Pic.9
Система координат камеры
Pic.10
Система координат камеры
Pic.11
Система координат камеры
Pic.12
Система координат камеры
Pic.13
Положение наблюдателя void gluLookAt( GLdouble ex, GLdouble ey, GLdouble ez, GLdouble cx, GLdouble cy, GLdouble cz, GLdouble upx, GLdouble upy, GLdouble upz );
Pic.14
Система координат пользователя
Pic.15
Определение системы координат наблюдателя
Pic.17
Пример управления камерой #include <GL/glut. h> #define _USE_MATH_DEFINES #include <math. h> struct Point3 { double x; double y; double z; }; struct Vector3 { double x; double y; double …
Pic.18
Пример управления камерой //Загрузка матрицы моделирования-вида существующими для камеры величинами void setModelViewMatrix(void) { float m[16 ]; Vector3 eVec; eVec. x = eye. x; eVec. y = eye. y; …
Pic.19
Пример управления камерой // Создание матрицы моделирования-вида void set(Point3 Eye, Point3 Look, Vector3 Up) { eye = Eye; look = Look; up = Up; n. x = eye. x - look. x; n. y = eye. y - look. y; n. …
Pic.20
Пример управления камерой //Скольжение void slide(float delU, float delV, float delN) { eye. x += delU * u. x + delV * v. x + delN * n. x; eye. y += delU * u. y + delV * v. y + delN * n. y; eye. z += …
Pic.21
Пример управления камерой //Тангаж void pitch(float angle) { float cs = cos(M_PI / 180 * angle); float sn = sin(M_PI / 180 * angle); Vector3 t = v; v. x = cs * t. x - sn * n. x; v. y = cs * t. y - sn …
Pic.22
Пример управления камерой //Поворот камеры вокруг оси v void rotate(float angle) { float cs = cos(M_PI / 180 * angle); float sn = sin(M_PI / 180 * angle); Point3 Eye, Look; Vector3 Up; Eye. x = cs * …
Pic.23
Пример управления камерой void myKeyboard(unsigned char key, int x, int y) { switch(key) { case '1': slide(0, 0, 0. 2); break; // скольжение вперед case '2': slide(0, 0, -0. 2); …
Pic.24
Пример управления камерой void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(640, 480); glutInitWindowPosition(50, 50); …
Pic.25
Пример управления камерой
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!