История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
И вот в чем вопрос:можно ли хотя бы в теории так сделать рисование на экране просто движением мыши?Типа в файл наверное выводились данные об позиции мыши и кликах,и если уметь расшифровать бинарный код то наверное можно каким либо образом рисовать без всяких гимпов
Можно, ты правильно думаешь. Тебе надо считывать поток, и интерпретируя его делать дальше всё что захочешь
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE * mouse = fopen("/dev/input/mouse0","rb");
char event[3] =
{
0, /*кнопочки и прочее, 7 бит на разные данные*/
0, /*сдвиг по x -1 или 0 или +1*/
0, /*сдвиг по y, тож самое*/
};
while(1)
{
fread(event,sizeof(event),1,mouse);
char * cho_nahzato = NULL;
switch(event[0] & 3) /*первые 2 бита про кнопки мышки */
{
case 0: cho_nahzato = "НЕТ НАЖАТИЙ"; break;
case 1: cho_nahzato = "ЛЕВАЯ КНОПКА"; break;
case 2: cho_nahzato = "ПРАВАЯ КНОПКА"; break;
case 3: cho_nahzato = "ЛЕВАЯ + ПРАВАЯ"; break;
default: cho_nahzato = "ЛЯЛЯЛЯЛЯ";break;
}
printf("%s %d %d\n",cho_nahzato,event[1],event[2]);
/*тереперь имея бесконечный поток нажатий и смещений
*можно отображать движения в чём угодно, например в картинке
или в чём-то что обновляется постоянно на экране*/
}
return 0;
}
Время будет надо терминальную рисовалку сделать :D
Исправление LINUX-ORG-RU, :
И вот в чем вопрос:можно ли хотя бы в теории так сделать рисование на экране просто движением мыши?Типа в файл наверное выводились данные об позиции мыши и кликах,и если уметь расшифровать бинарный код то наверное можно каким либо образом рисовать без всяких гимпов
Можно, ты правильно думаешь. Тебе надо считывать поток, и интерпретируя его делать дальше всё что захочешь
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE * mouse = fopen("/dev/input/mouse0","rb");
char event[3] =
{
0, /*кнопочки и прочее, 7 бит на разные данные*/
0, /*сдвиг по x -1 или 0 или +1*/
0, /*сдвиг по y, тож самое*/
};
while(1)
{
fread(event,sizeof(event),1,mouse);
char * cho_nahzato = NULL;
switch(event[0] & 3) /*первые 2 бита про кнопки мышки */
{
case 0: cho_nahzato = "НЕТ НАЖАТИЙ"; break;
case 1: cho_nahzato = "ЛЕВАЯ КНОПКА"; break;
case 2: cho_nahzato = "ПРАВАЯ КНОПКА"; break;
case 3: cho_nahzato = "ЛЕВАЯ + ПРАВАЯ"; break;
default: cho_nahzato = "ЛЯЛЯЛЯЛЯ";break;
}
printf("%s %d %d\n",cho_nahzato,event[1],event[2]);
/*тереперь имея бесконечный поток нажатий и смещений
*можно отображать движения в чём угодно, например в картинке
или в чём-то что обновляется постоянно на экране*/
}
return 0;
}
Исходная версия LINUX-ORG-RU, :
И вот в чем вопрос:можно ли хотя бы в теории так сделать рисование на экране просто движением мыши?Типа в файл наверное выводились данные об позиции мыши и кликах,и если уметь расшифровать бинарный код то наверное можно каким либо образом рисовать без всяких гимпов
Можно, ты правильно думаешь. Тебе надо считывать поток, и интерпретируя его делать дальше всё что захочешь
#include <stdio.h>
int main(int argc, char *argv[])
{
FILE * mouse = fopen("/dev/input/mouse0","rb");
char event[3] =
{
0, /*кнопочки и прочее, 7 бит на разные данные*/
0, /*сдвиг по x -1 или 0 или +1*/
0, /*сдвиг по y, тож самое*/
};
while(1)
{
fread(event,sizeof(event),1,mouse);
char * cho_nahzato = NULL;
switch(event[0] & 3) /*первые 2 бита про кнопки мышки */
{
case 0: cho_nahzato = "НЕТ НАЖАТИЙ"; break;
case 1: cho_nahzato = "ЛЕВАЯ КНОПКА"; break;
case 2: cho_nahzato = "ПРАВАЯ КНОПКА"; break;
case 3: cho_nahzato = "ЛЕВАЯ + ПРАВАЯ"; break;
default: cho_nahzato = "ЛЯЛЯЛЯЛЯ";break;
}
printf("%s %d %d\n",cho_nahzato,event[1],event[2]);
/*тереперь имея бесконечный поток нажатий и смещений
*можно отображать движения в чём угодно, например в картинке
или в чём-то что обновляется постоянно на экране*/
}
return 0;
}