Рисование линии по MouseMove?
От: x0resk  
Дата: 24.10.06 05:03
Оценка: :)
Как известно событие MouseMove вызывается довольно редко и нарисовать линию SetPixel-ем не выйдет. Конечно можно между точкам, которые получены с помощью MouseMove, достраивать прямые линии, но это совсем не то. Так вот мне хотелось бы знать есть ли возможность получить координаты всех точек, по которым прошел курсор мыши, и как это сделать.
Re: Рисование линии по MouseMove?
От: Amidlokos Россия  
Дата: 24.10.06 05:21
Оценка:
Здравствуйте, x0resk, Вы писали:

X>Как известно событие MouseMove вызывается довольно редко и нарисовать линию SetPixel-ем не выйдет. Конечно можно между точкам, которые получены с помощью MouseMove, достраивать прямые линии, но это совсем не то. Так вот мне хотелось бы знать есть ли возможность получить координаты всех точек, по которым прошел курсор мыши, и как это сделать.


Почему "не то"? Так и делается. И ни один драйвер, кстати, не снимает положение курсора для каждого пикселя

Ну, можешь сплайн строить
WARNING: expression "to_be || !to_be" is always true
Re[2]: Рисование линии по MouseMove?
От: x0resk  
Дата: 24.10.06 05:57
Оценка:
Проблема в том, что в итоге надо знать все координаты точек, по которым проходят линии и LineTo тут не поможет? Есть ли какие то API функции, которые позволяют это сделать?
Re[3]: Рисование линии по MouseMove?
От: Аноним  
Дата: 24.10.06 07:42
Оценка:
X>Проблема в том, что в итоге надо знать все координаты точек, по которым проходят линии и LineTo тут не поможет? Есть ли какие то API функции, которые позволяют это сделать?
Курсор проходит не по непрерывной прямой а по набору точек. Если хочецца нарисовать плавную линию -сделай мат. интерполяцию типа сплайнов.
Re: Рисование линии по MouseMove?
От: korzhik Россия  
Дата: 24.10.06 07:58
Оценка:
Здравствуйте, x0resk, Вы писали:

X>Как известно событие MouseMove вызывается довольно редко и нарисовать линию SetPixel-ем не выйдет. Конечно можно между точкам, которые получены с помощью MouseMove, достраивать прямые линии, но это совсем не то. Так вот мне хотелось бы знать есть ли возможность получить координаты всех точек, по которым прошел курсор мыши, и как это сделать.


начиная с win2000 GetMouseMovePointsEx
Re[4]: Рисование линии по MouseMove?
От: x0resk  
Дата: 24.10.06 08:00
Оценка: :)
Ну вот теперь еще и интерполяция, сплайны — не надо мне такого счастья — уравнение прямой и ладно.
Re: Рисование линии по MouseMove?
От: BlackHeretic Израиль  
Дата: 24.10.06 14:41
Оценка:
А если попробовать опрашивать координаты мыши по таймеру с очень малой задержкой?
ICQ 156156278
Re[2]: Рисование линии по MouseMove?
От: Amidlokos Россия  
Дата: 24.10.06 16:11
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>А если попробовать опрашивать координаты мыши по таймеру с очень малой задержкой?


...и заставить пользователя двигать курсор с очень малой скоростью?
WARNING: expression "to_be || !to_be" is always true
Re[3]: Рисование линии по MouseMove?
От: BlackHeretic Израиль  
Дата: 24.10.06 16:18
Оценка:
Здравствуйте, Amidlokos, Вы писали:

A>Здравствуйте, BlackHeretic, Вы писали:


BH>>А если попробовать опрашивать координаты мыши по таймеру с очень малой задержкой?


A>...и заставить пользователя двигать курсор с очень малой скоростью?


Зачем же. Если он шустро движет мышу, то между двумя "поймаными" точками наверняка будет прямая, если он конечно не с бодуна
ICQ 156156278
Re[4]: Рисование линии по MouseMove?
От: Аноним  
Дата: 24.10.06 16:41
Оценка:
BH>Зачем же. Если он шустро движет мышу, то между двумя "поймаными" точками наверняка будет прямая, если он конечно не с бодуна
Дефолтовая частота опроса PS/2 мыши -80Гц. Это значит что данные о координатах мыши при ее движении по кабелю передаются 80 раз в секунду. А теперь проведем эсперимент. Берем мышь, быстро очерчиваем ею окружносить диаметром пол-высоты экрана. Экран у меня — 1280х768. Диаметр окружности — 340 пикселей. Длина — PI*340= ~1070 пикселей. Обвел я эту окружность неспеша — за полсекунды гдето (хотя мона конечно программно померять интервал. За эти пол секунды мышка была опрошена 40 раз 1070/40 = 26.75. Это — шаг в пикселях рисования окружности, ограниченный _аппаратно_. USBшные мышки по дефолту опрашиваются 125 раз в секунду. И PS/2 и USB мыши можно "разогать" (настройками драйвера в реестре) увеличив частоту опроса до 200Гц. COMовские же мыши опрашиваются 40 раз в секунду и разгону не подлежат
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.