![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2008
Сообщений: 41
|
Доброго времени суток, господа флешеры.
Есть задача, довольно тривиальная, но я пока не знаю, с какой стороны к ней подойти, поэтому и спрашиваю Вашего совета. Есть определенная кривая, пользователь, зажав мышку, должен повторить эту траэкторию, имея степень погрешности. Если бы дело касалось прямой, то тут вопрос довольно для меня очевиден. А вот как быть, если имеються кривые петли, например. Если есть какие то готовые решения, библиотеки или туториалы по этому поводу, будьте столь добры, поделитесь, если же нету, то посоветуйте кейворды для поиска. Я буду очень благодарен. |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
я бы сделал 3 кривые, одну центральную рисовал для пользователя, вторую подня выше центральной на 20 px(допустим ), третью ниже на 20px, и смотрел чтобы курсор находился между верхней и нижней кривой. Кривые бы рисовал Безье
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 41
|
Хорошо, а как быть в случае с петлей? Если пользователь не захочет ее огибать и возжелает сократить траэкторию, что тогда? Просто в данном случае, это самый беспокоящий меня вопрос.
|
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
SirSerje, "траектория".
Можно попробовать весь путь движения курсора представить в виде набора точек. При смещении курсора брать текущую точку и следующую и смотреть расстояния. Если расстояние от текущей точки до курсора меньше, чем расстояние от следующей до курсора, то принять за текущую точку следующую, а за следующую — третью. То есть "откидывать" точки, которые уже "прошли". Если расстояние больше предела, — считать, что пользователь увел курсор. Для случая с петлей должно нормально работать, как мне кажется. Главное — подобрать значения для расстояний между точками и для погрешности положения курсора.
__________________
hauts.ru |
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
у кривых безье есть параметр t, пока t closest -a не станет больше 1 или меньше 0, не активировать следующую кривую, с точками тоже кстати хорошая идея, точки загнать в массив, и проверять ближайшую, и проверять разность индексов в массиве(предыдущей и текущей точки), если больше 1 , то gameover
|
|
|||||
|
Регистрация: Jun 2008
Сообщений: 41
|
Спасибо большое.
2Hauts: в принципе, идея с точками у меня была и с точки зрения реализации, не должна быть весьма сложной. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|