|
не Администратор ^_^
|
|
Движение объекта за мышкой с заданной скоростью04.11.2013, 07:04. Показов 14646. Ответов 9
Метки нет (Все метки)
Привет.
Собственно вопрос, как сделать движение объекта за мышкой с заданной скоростью, да так, чтобы браузер не убить. Кликните здесь для просмотра всего текста
У меня в голове одна идея.
Допустим у нас объект находится по координатам x:120 y:200 мышка по координатам x:50 y:50 Представим что это прямоугольный треугольник с катетами: k1=120-50 k2=200-50 тогда гипотенуза - это путь, который должен пройти объект. Угол между катетом и гипотенузой (та точка, где наш объект находится) tg(a)=k1/k2 Дальше, имея угол между гипотенузой и катетом, мы представим что гипотенуза = 5 (это скорость, иными словами расстояние, где должен находится объект) Получается мы имеет длину гипотенузы и прилежащий угол... Осталось найти новые катеты (они то и дадут нам новые координаты объекта) смещение по х=cos(A)*5 смещение по y=sin(A)*5 Как жу трудно сформулировать мысли, когда сутки не спал... Но все же, есть ли проще способ? А то может я щас велосипед изобретаю... Сильно много вычислений получается для перемещения.
0
|
|
| 04.11.2013, 07:04 | |
|
Ответы с готовыми решениями:
9
Движение объекта мышкой Как ускорить движение объекта мышкой?
|
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
|
| 04.11.2013, 07:37 | |
|
Создаем два вектора - один для указателя мыши, а другой для объекта документа. Далее вычитаем вектор объекта из вектора мыши и считаем тангенс угла из результата вычитания(это направление). За тем, производим нормализацию и произведение вектора на скаляр - это скорость
расстояние можно посчитать по теореме Пифагора.
0
|
|
|
не Администратор ^_^
|
||
| 04.11.2013, 22:19 [ТС] | ||
|
Padimanskas, я немного не уверен, но ведь многое при работе с векторами решается через треугольники?) опять возвращаемся к длинному решению.
Щас со свежей головой напишу что хотел ![]() даже нарисую Вот, с левой стороны то, что мне надо (это новые коориданты x, y, где мне известны координаты мышки, объекта и радиус круга = 5) С правой стороны, это вспоминание геометрии из школы Как бы я искал.О еще вопрос встречный, на js как мне tg(угла) превратить в cos и sin(угла)...
0
|
||
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
||||||
| 05.11.2013, 03:11 | ||||||
|
Добавлено через 4 часа 30 минут Код немного не оптимизирован, по тому что писал довольно быстро, но разобраться можно. Как я уже говорил все делается с помощью векторов.
2
|
||||||
|
не Администратор ^_^
|
||||||
| 08.11.2013, 07:14 [ТС] | ||||||
|
Padimanskas, вообще волшебно
![]() я только решил вне функций записать
по теореме Пифагора посчитали гипотенузу. А потом отношение сторон посчитать гениально просто ![]() Кликните здесь для просмотра всего текста
ну допустим гипотенуза равна 15, а наша новая равна 5, то отношение 15 к 5 = 3
Если мы гипотенузу разделим на 3, то получим новую гипотенузу и так же катеты, если мы разделим их на 3, получим новые катеты А вот еще полезная ссылка, для тех кто на эту тему накинется из интернета: http://habrahabr.ru/post/131931/
0
|
||||||
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
||||||
| 27.11.2013, 07:58 | ||||||
|
Я оптимизировал код и добавил комментарии. Теперь у этого "жука" уменьшаются и увеличиваются глаза при приближении к курсору
Работает во всех браузерах +IE8. ![]()
0
|
||||||
|
не Администратор ^_^
|
||||||
| 27.11.2013, 16:48 [ТС] | ||||||
|
Padimanskas, ну раз на то пошло, добавлю от себя
![]()
0
|
||||||
|
не Администратор ^_^
|
||||||||||||||||
| 28.11.2013, 16:54 [ТС] | ||||||||||||||||
|
Padimanskas, твой скрипт занял ~100 строчек кода (ты делал через вектора)
Твоя версия: Кликните здесь для просмотра всего текста
Я использовал свой вариант перемещения, через отношение треугольников, и подвел твою работу под свою формулу:
Кликните здесь для просмотра всего текста
Моя версия ~60 строчек JS кода Результат тот же.P.s. Хотя все зависит от понимания, вектора для меня сложнее как-то переварить) нормализации какие-то) Может кому-то будет проще через вектора. Но геометрия есть геометрия, логика осталась прежней.
1
|
||||||||||||||||
|
Superposition
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
|
|
| 28.11.2013, 20:53 | |
|
Unick, с векторами можно проделать больше операций, но это уже относиться к game dev
0
|
|
|
5 / 5 / 0
Регистрация: 03.08.2010
Сообщений: 246
|
|
| 30.07.2014, 23:04 | |
|
А можно ли сделать так что бы оно не бегало за мышкой ?
хотелось бы сделать так что бы у дракона бегали глаза в сторону где стрелка от мыши, на два отдельно глаза ссылка Добавлено через 5 минут как это примерно сделано тут ссылка
0
|
|
| 30.07.2014, 23:04 | |
|
Помогаю со студенческими работами здесь
10
Движение шарика вдоль заданной линии с регулируемой скоростью
Движение объекта по заданной траектории Движение объекта по заданной траектории Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|