LINUX.ORG.RU

История изменений

Исправление 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;
}