Форум программистов, компьютерный форум CyberForum.ru

OpenGL Управление камерой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из консольного приложения в dll http://www.cyberforum.ru/cpp/thread949002.html
Доброго времени суток. Есть консольный проект который нужно переделать в dll библиотеку. Вызываться из другой программы будет лишь одна функция. При создании dll компилятор ругается на типы данных которые берутся из внешних подключаемых библиотек. Подскажите пожалуйста в чем может быть причина. Проект: https://www.dropbox.com/s/v0ii81e2to2tz6w/ffmpegDecoder-vs2008.zip
C++ Есть следующий код как он работает, кто может объяснить подробнее Сам я дельфист. Знатоки С++ есть массив следующий: const uint8_t Font = { { 0x00, 0x00, 0x00, 0x00, 0x00 }, // 0x20 32 { 0x00, 0x00, 0x5F, 0x00, 0x00 }, // ! 0x21 33 { 0x00, 0x07, 0x00, 0x07, 0x00 }, // " 0x22 34 { 0x14, 0x7F, 0x14, 0x7F, 0x14 }, // # 0x23 35 { 0x24, 0x2A, 0x7F, 0x2A, 0x12 }, // $ 0x24 36 http://www.cyberforum.ru/cpp/thread948843.html
C++ Ищу онлайн обучение C++ (за определенную плату)
Уважаемые программисты, совсем недавно стал интересоваться программированием и поэтому хотел бы узнать у вас, есть какой нибудь сайт или группа, где бы обучали программировать C++, групповые занятия онлайн, через скайп допустим или как то так, и сколько Будет стоит обучение???
C++ Обработка массива байт проходящих с ip -камеры ffmpeg' ом
Всем доброго времени суток. С обработкой видео которое сохранено в файле ffmpeg'ом все понятно. А как можно обработать массив байт, который постоянно приходит с ip-камеры? av_open_input_file для этого дела не подходит.
C++ Вызов функции из dll http://www.cyberforum.ru/cpp/thread946166.html
Доброго времени суток! Пытаюсь вызвать функцию, которая находится в библиотеке следующим способом: HINSTANCE dllhandle = LoadLibrary((LPCWSTR)"avformat.dll"); void (*avRegistryAll)(); (FARPROC &) avRegistryAll = GetProcAddress(dllhandle, "av_register_all"); avRegistryAll(); FreeLibrary(dllhandle);
C++ Создать оператор, наподобии if или while Могу ли я, пользуясь встроенными средствами C++ (ну или какой-нибудь библиотекой) создать собственный оператор, умеющий работать с блоками кода? То есть написать оператор, выглядящий как-то так: mycodeblockoperator(a==b) { } on { } off подробнее

Показать сообщение отдельно
NickolayAkimov
0 / 0 / 0
Регистрация: 03.02.2013
Сообщений: 24

OpenGL Управление камерой - C++

06.09.2013, 18:20. Просмотров 1329. Ответов 1
Метки (Все метки)

Здравствуйте уважаемые форумчане!
Очень нужен ваш совет. Ситуация заключается в следюющем. Я начал изучение opengl, сейчас разбираюсь с функцией gluLookAt(...), в теории как она работает, вроде все понятно, но приступив к практике, сразу же натыкаюсь лбом в угол.
Задача стоит в том что нужно реализовать движение камеры по сцене, для начала вперед назад(к обьекту/от обьекта).

Реализовать пытаюсь следующим образом:
в gluLookAt() передаю переменные xp=0,yp=0,zp=-200 - позиция наблюдателя и xl=0, yl=0; zl=0 - точка взгляда, по нажатию кнопку 'w'(в нижнем регистре) для zp и zl делаю +21. Т.е по идее камера должна приближаться к объекту по оси Z. Но вместо этого объект абсолютно никак не изменяется, и только после нескольких нажатий просто исчезает.

Подскажите пожалуйста в чем моя ошибка? Код привожу ниже, буду очень благодарен за любую помощ.
За ранее спасибо с ув. Nickolay
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <glut.h>
#include <windows.h>
#include <glaux.h>
 
using namespace std;
 
float xp = 0.0;
float yp = 0.0;
float zp = -100.0;
 
float xl = 0.0;
float yl = 0.0;
float zl = 0.0;
 
float xv = 0.0;
float yv = 1.0;
float zv = 0.0;
 
 
void Keyboard(unsigned char key, int x, int y)
{
        switch(key)
        {
            
        
            case 'w': zp = zp+21.0f;
                     zl = zl+21.0f;
                     cout << "zp = " << zp << endl;
                cout << "zl = " << zl << endl;
                                   break;
        }
        glutPostRedisplay();
}
 
void Draw()
{
 
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity;
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity;
    gluLookAt(xp,yp,zp, xl,yl,zl, xv,yv,zv);
    glPushMatrix;
         glClear(GL_COLOR_BUFFER_BIT);
         glColor3f(0.0, 1.0, 0.0);
 
         glBegin(GL_LINES);
            
                        GLUquadricObj * quadSphere;
            quadSphere = gluNewQuadric();
            gluQuadricDrawStyle(quadSphere, GLU_LINE );
            gluSphere( quadSphere , 50 , 36 , 18 );
            gluDeleteQuadric(quadSphere); 
            glEndList();
 
        glEnd();
        glutSwapBuffers();
    glPopMatrix;
        //cout << "Draw();" << endl;
}
 
void Initialize()
{
        glClearColor(1.0, 0.0, 0.0, 1.0);
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
        glOrtho(-200.0, 200.0, -200.0, 200.0, -200.0, 200.0);
}
 
int main(int argc, char** argv)
{
        //Инициализация
        glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
        glutInitWindowSize(400, 400);
        glutInitWindowPosition(100, 200);
        glutCreateWindow("Lesson 01");
        //Регистрация
        glutDisplayFunc(Draw);//Рисование
    glutKeyboardFunc(Keyboard);
        Initialize();
        glutMainLoop();
        return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru