![]() |
Нахождение координат мыши
Задача не тривиальная. Мне необходимо найти координаты мыши при её движении. Можно сделать это по событию MOUSE_MOVE, можно по таймеру (задав достаточно малый delay). Но все это натыкается на ту проблему, что плеер отслеживает перемещение курсора достаточно "грубо" при его быстром передвижении ( к примеру, соседние значения координат точек могут быть такими: x0=100, y0=100; x1=110, y1=105) , то есть расстояние между замеренными точками может быть несколько десятков пикселей. Уменьшить дискретность не возможно ни увеличением FPS клипа, ни уменьшением delay - то есть проблема лежит в самом плеере. Насколько я понимаю, единственный способ найти промежуточные значения между контрольными точками - аппроксимация. Самый простой случай - линейная аппроксимация, но при таком подходе соединение всех точек отрезками даст достаточно "ломанную" траекторию, правдоподобным будет применение нелинейной аппрокимации, соединение даст вполне гладкую кривую. Применять для этого кривые Безье? Я не уверен , что это даст правдоподобный результат. Если кто знает, подскажите математический инструмент нахождения промежуточных точек движения курсора. Если конечно он существует :)
|
Такое движение миши это проблема не плеера, а Windows! И, вообще то, это не проблема!
Найдите пару рисовалок на флеше и посмотрите как это там реализовано... |
Каких рисовалок? Где по EnterFrame или по MouseMove идет вызов graphics.lineTo(mouseX, mouseY)? Там эти ломанные видны во всей красе. Или у Вас есть на примете какая то рисовалка с более точной реализацией прорисовки? Поделитесь
|
Корел дро.
|
Код:
someObj.addListener(MouseEvent.MOUSE_MOVE, mouseMoveListener); |
Цитата:
а вообще интересно, вы читаете предыдущие посты?:) |
меняйте дрова у мышки. если у вас пс/2 то можно выставить 200 герц, и обновление мышки на экране будет гораздо чаще. а что качается резких рывков, то система работает с вашей мышкой, на сколько я помню, по умолчанию 100 герц. тоесть замеры движения то дискретные. и иначе быть не может.
что касается аппроксимации, то возьмите учебник по алгоритмизации за 2 семестр, любого вуза. |
BlooDHounD, Вы наиболее правильно поняли мою проблему, спасибо. Я конечно могу менять драйвер, но не могу заставить других. Поэтому вычисление промежуточных значений самый подходящий мне вариант. Но, к сожалению, учебника по алгоритмизации у меня нет, и даже если найду, хотелось бы знать куда копать. Опять же гугл мне бы помог, если б я смог правильно сформулировать свой вопрос.. (хотя бы на языке Шекспира)
|
|
все просто, надо использовать curveTo... между двумя соседними точками. могу выложить готовую рисовалку.
|
| Часовой пояс GMT +4, время: 17:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.