Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/19: Рейтинг темы: голосов - 19, средняя оценка - 4.74
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 9
1

OpenGL. X11. Управление наблюдением мышью

26.10.2009, 17:32. Показов 3502. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пытаюсь реализовать управление мышью как в играх.
Остановился на таком решении, движение гладкое, но бывает курсор зацикливается в одной области.
Может быть у кого-нибудь есть советы по реализации задуманного ?
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
void SimpleXApp::MouseFunc(int & x, int & y)
{
    static bool first_run = true;
    static int mouseX, mouseY;
    static int dx, dy;
    if (first_run == true)
    {
        XWarpPointer(display, window, window, 0, 0, 0, 0, width/2, height/2);
        mouseX = width/2;
        mouseY = height/2;
        first_run = false;
    }
    else
        {
 
            if (x >= width-395)
            {
                mouseX = x-6;
                XWarpPointer(display, window, window, 0, 0, 0, 0, x-5, y);
            }
            else
                if (x <= 395)
                {
                    mouseX = x+6;
                    XWarpPointer(display, window, window, 0, 0, 0, 0, x+5, y);
                }
 
            if (y >= height-395)
            {
                mouseY = y-6;
                XWarpPointer(display, window, window, 0, 0, 0, 0, x, y-5);
            }
            else
                if (y <= 395)
                {
                    mouseY = y+6;
                    XWarpPointer(display, window, window, 0, 0, 0, 0, x, y+5);
                }
 
        dx = x - mouseX;
        dy = y - mouseY;
        cam.rotate((float)dy*0.025, (float)dx*0.025);
        mouseX = x;
        mouseY = y;
        std::cout << "x = " << x << " | y = " << y << std::endl;
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2009, 17:32
Ответы с готовыми решениями:

Управление мышью
Помогите с написанием программы которая бы устанавливала мышь на определенные координаты которые я...

Управление мышью
Всем привет! Кто-нибудь может подсказать, как сделать такую программу: пользователь запускает...

Управление мышью
хочу написать простенькую прогу которая должна двигать курсор до края экрана потом курсор долежен...

Координаты, возвращаемые мышью, в opengl
Добрый день! Помогите, пожалуйста, разобраться с системой координат в opengl. Например, я хочу,...

2
0 / 0 / 0
Регистрация: 05.10.2009
Сообщений: 18
28.10.2009, 19:50 2
По-моему ты слишком много ненужного понаписал...
Если "x" и "y", которые передаются в качестве параметров - это новые координаты мыши, то думаю, что должно быть примерно так (если я все правильно понимаю):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void SimpleXApp::MouseFunc( int x, int y )
{
    static int px, py = -1;
    static int dx, dy;
    if ( py == -1 ) {
        dx = 0;
        dy = 0;
    } else {
        dx = px - x;
        dy = py - y;
    }
    px = x;
    py = y;
    cam.rotate( (float)dy * 0.025, (float)dx * 0.025 );
    XWarpPointer( display, wnd, wnd, 0, 0, 0, 0, wnd_w / 2, wnd_h / 2 );
}
Где, wnd_w и wnd_h - это размеры окна.

А чтобы поменять направление вращения по оси X, нужно заменить "dx = px - x" на "dx = x - px".
Аналогично для оси Y.
0
1 / 1 / 0
Регистрация: 03.10.2009
Сообщений: 9
16.11.2009, 22:15  [ТС] 3
Не помогло
0
16.11.2009, 22:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2009, 22:15
Помогаю со студенческими работами здесь

Управление мышью и клавиатурой
Здравствуйте. Возможно ли в через Windows Forms управлять положением курсора, имитацией нажатия...

Управление мышью - Арканоид
Здравствуйте, не могу додуматься как сделать управление мышью лишь по одной оси X, сейчас стоит...

Управление мышью удаленного ПК
Всем добрый день, подскажите пожалуйста сделал программку на делфи 2010 удаленного просмотра пк....

Управление мышью и клавиатурой
Всем привет! Хочу сделать седующее: 1. В программе открывается окно; 2. Выделяем это окно...

Считывание кривой нарисованной мышью в OpenGL
Недавно начал изучать язык C# и решил поработать с OpenGL. Задача заключается в построении...

Управление мышью в консольном приложении
Возможно тема поднималась где то в разделе С/C++ и долго думая решил все же тут создать тему. Кто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru