Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Java2d - отследить нажатие мыши на rectangle при повороте rectangle / 19 сообщений из 19, страница 1 из 1
15.08.2016, 11:37
    #39291820
else12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Недавно попросил помочь мне с выбором инструментария для простой графики. Выбрал в итоге java2d. В принципе, полет нормальный. Но не понятна одна вещь - как без сложной математики отследить нажатие мыши на, допустим, rectangle при повороте этого самого rectangle?

Сами координаты при повороте вычислить при помощи тангенсов и косинусов можно - только они в данном случае мало помогают...
...
Рейтинг: 0 / 0
15.08.2016, 12:22
    #39291855
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Это все очень долго, я бы попробовал вот что:
1. Есть такая библиотека fabric js, которая покроет Ваши трребования на 100%, проблема в том, что ей нужен html canvas. Если прокатит подключить через WebView, то сделать так.
2.Найти и использовать какой-нибудь простенький 2d Engine, что-бы рисовал квадраты, опеределял пересечения и т.д.
...
Рейтинг: 0 / 0
15.08.2016, 12:41
    #39291868
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
no56892простенький 2d Engine
автора предупреждали, что графический движок - затратное дело.
Если руками и самому, то можно определять по габариту
Код: java
1.
2.
2D_притивив.Дай_габарит()
2D_притивив.IsClickMouse(x,y)


- при этом мышка будет менять курсор не точно над гранями объекта, а примерно.
Но в версии 1.1 движка подойдёт )))
Габарит считается циклом проходя по всем точкам фигуры и сравнения на MAX\MIN
...
Рейтинг: 0 / 0
15.08.2016, 13:01
    #39291881
else12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Petro123no56892простенький 2d Engine
автора предупреждали, что графический движок - затратное дело.
Если руками и самому, то можно определять по габариту
Код: java
1.
2.
2D_притивив.Дай_габарит()
2D_притивив.IsClickMouse(x,y)


- при этом мышка будет менять курсор не точно над гранями объекта, а примерно.
Но в версии 1.1 движка подойдёт )))
Габарит считается циклом проходя по всем точкам фигуры и сравнения на MAX\MIN
Да я могу и точно вычислить новые координаты с помощью всяких тангенсов-косинусов, но хотелось бы, конечно, более простое решение...
...
Рейтинг: 0 / 0
15.08.2016, 13:03
    #39291883
no56892
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
авторавтора предупреждали, что графический движок - затратное дело.
Я боюсь, что писать все руками затратнее на несколько порядков.
...
Рейтинг: 0 / 0
15.08.2016, 13:07
    #39291885
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
no56892,
да. В человекогодах измеряется.
Пусть ищет готовое или ГИС возьмёт.
...
Рейтинг: 0 / 0
15.08.2016, 13:08
    #39291887
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
else12но хотелось бы, конечно, более простое решение...
а зачем вопрос задал? Продолжай ту тему что была.
...
Рейтинг: 0 / 0
15.08.2016, 13:46
    #39291934
else12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Petro123else12но хотелось бы, конечно, более простое решение...
а зачем вопрос задал? Продолжай ту тему что была.
Нет, чтобы помочь человеку...
...
Рейтинг: 0 / 0
15.08.2016, 13:49
    #39291938
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
else12Нет, чтобы помочь человеку...
тебе дали задачу стоимостью миллион.
Сожалею.
Могу только отговорить.
Либо чёткое ТЗ составь за бабки с заказчиком и оговори что там НЕ будет по функционалу.
Или тебе формулы дать?
...
Рейтинг: 0 / 0
15.08.2016, 14:12
    #39291967
else12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Petro123Или тебе формулы дать?
Да.
...
Рейтинг: 0 / 0
15.08.2016, 14:14
    #39291972
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
else12,
первую дал - по габариту.
Цикл непонятен?
...
Рейтинг: 0 / 0
15.08.2016, 14:34
    #39291989
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
else12Сами координаты при повороте вычислить при помощи тангенсов и косинусов можно - только они в данном случае мало помогают...
Смотри. Поскольку речь зашла о косинусах и синусах. Эта вся "математика на плоскости"
давно формализована в It и называется affine transformations. Иногда в других источниках
- линейные преобразования. Почему линейные. Потому-что прямая после такого преобразования
остается прямой. Сюда входят перенос (translate), масштаб (scale), поворот (rotate), и иногда
еще добавляют скос (skew).

Далее, решать проверку попадания мыши в rectangle можно разными путями. В идеале
я-бы предложил поискать готовый API в части java2d (Graphics, AffineTransform, Point2D).

Я думаю что там должны быть такие функции. В части технического hint - если фигура простая
(прямая, квадраНт, прямоугольник) с разворотом относительно точки, то можно видовые кординаты
((xm,ym) мышка) подвергнуть обратному повороту и получить тривиальную проверку (xm,ym) располагается
справа или слева относительно осей вида y=const, x=const.
...
Рейтинг: 0 / 0
15.08.2016, 14:42
    #39291998
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
maytonя-бы предложил поискать готовый API в части java2d
в простой rect попадание и делать нечего.
А вот в повёрнутый - это уже попадание в полигон. Готового нигде нету (в платформе).
...
Рейтинг: 0 / 0
15.08.2016, 14:50
    #39292007
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Petro123Готового нигде нету (в платформе).
для простого прямоугольника в винде есть:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd162882(v=vs.85).aspx
PtInRect
...
Рейтинг: 0 / 0
15.08.2016, 14:52
    #39292008
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
И вообще, я думаю у него координаты глобальные, а не канвас в пикселях.
Поэтому работы там - море.
Удачи аффтару!
...
Рейтинг: 0 / 0
15.08.2016, 15:04
    #39292027
else12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Petro123И вообще, я думаю у него координаты глобальные, а не канвас в пикселях.
Поэтому работы там - море.
Удачи аффтару!
Да можно сделать проще - в центре прямоугольника поместить круг, который является чем-то вроде ручки, за которую надо взять прямоугольник. Координаты круга при вращении не меняются. Собственно, я так уже и сделал. Не очень нравится такое решение, но в принципе, оно вполне рабочее. Просто думал здесь есть гуру, которые помогут сделать проще и лучше... Но, в принципе, и так сойдет...
...
Рейтинг: 0 / 0
15.08.2016, 15:12
    #39292037
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
else12Да можно сделать проще
+1 так проще.
...
Рейтинг: 0 / 0
15.08.2016, 15:54
    #39292073
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
Э... да тут вопрос вообще не про это!

Тебе круг не нужен. Тебе нужен угол между центром прямоугольника (или центром вращения) и первым
мышкокликом в контексте выделения прямоугольника. Далее просто замеряй как этот угол изменился.
При этом мышка не обязательно должна стоять на окружности.
...
Рейтинг: 0 / 0
15.08.2016, 16:43
    #39292107
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
mayton,
фиг знает о чём он.
Либо ПРИ повороте (MouseMove).
Либо ПОСЛЕ поворота (MouseClick)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Java2d - отследить нажатие мыши на rectangle при повороте rectangle / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]