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

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


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


- при этом мышка будет менять курсор не точно над гранями объекта, а примерно.
Но в версии 1.1 движка подойдёт )))
Габарит считается циклом проходя по всем точкам фигуры и сравнения на MAX\MIN
Да я могу и точно вычислить новые координаты с помощью всяких тангенсов-косинусов, но хотелось бы, конечно, более простое решение...
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291883
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторавтора предупреждали, что графический движок - затратное дело.
Я боюсь, что писать все руками затратнее на несколько порядков.
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291885
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892,
да. В человекогодах измеряется.
Пусть ищет готовое или ГИС возьмёт.
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291887
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12но хотелось бы, конечно, более простое решение...
а зачем вопрос задал? Продолжай ту тему что была.
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291934
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123else12но хотелось бы, конечно, более простое решение...
а зачем вопрос задал? Продолжай ту тему что была.
Нет, чтобы помочь человеку...
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291938
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12Нет, чтобы помочь человеку...
тебе дали задачу стоимостью миллион.
Сожалею.
Могу только отговорить.
Либо чёткое ТЗ составь за бабки с заказчиком и оговори что там НЕ будет по функционалу.
Или тебе формулы дать?
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291967
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Или тебе формулы дать?
Да.
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291972
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12,
первую дал - по габариту.
Цикл непонятен?
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291989
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39291998
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonя-бы предложил поискать готовый API в части java2d
в простой rect попадание и делать нечего.
А вот в повёрнутый - это уже попадание в полигон. Готового нигде нету (в платформе).
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39292007
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Готового нигде нету (в платформе).
для простого прямоугольника в винде есть:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd162882(v=vs.85).aspx
PtInRect
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39292008
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще, я думаю у него координаты глобальные, а не канвас в пикселях.
Поэтому работы там - море.
Удачи аффтару!
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39292027
else12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123И вообще, я думаю у него координаты глобальные, а не канвас в пикселях.
Поэтому работы там - море.
Удачи аффтару!
Да можно сделать проще - в центре прямоугольника поместить круг, который является чем-то вроде ручки, за которую надо взять прямоугольник. Координаты круга при вращении не меняются. Собственно, я так уже и сделал. Не очень нравится такое решение, но в принципе, оно вполне рабочее. Просто думал здесь есть гуру, которые помогут сделать проще и лучше... Но, в принципе, и так сойдет...
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39292037
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
else12Да можно сделать проще
+1 так проще.
...
Рейтинг: 0 / 0
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
    #39292073
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Э... да тут вопрос вообще не про это!

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


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