|
|
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Недавно попросил помочь мне с выбором инструментария для простой графики. Выбрал в итоге java2d. В принципе, полет нормальный. Но не понятна одна вещь - как без сложной математики отследить нажатие мыши на, допустим, rectangle при повороте этого самого rectangle? Сами координаты при повороте вычислить при помощи тангенсов и косинусов можно - только они в данном случае мало помогают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 11:37 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Это все очень долго, я бы попробовал вот что: 1. Есть такая библиотека fabric js, которая покроет Ваши трребования на 100%, проблема в том, что ей нужен html canvas. Если прокатит подключить через WebView, то сделать так. 2.Найти и использовать какой-нибудь простенький 2d Engine, что-бы рисовал квадраты, опеределял пересечения и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 12:22 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
no56892простенький 2d Engine автора предупреждали, что графический движок - затратное дело. Если руками и самому, то можно определять по габариту Код: java 1. 2. - при этом мышка будет менять курсор не точно над гранями объекта, а примерно. Но в версии 1.1 движка подойдёт ))) Габарит считается циклом проходя по всем точкам фигуры и сравнения на MAX\MIN ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 12:41 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Petro123no56892простенький 2d Engine автора предупреждали, что графический движок - затратное дело. Если руками и самому, то можно определять по габариту Код: java 1. 2. - при этом мышка будет менять курсор не точно над гранями объекта, а примерно. Но в версии 1.1 движка подойдёт ))) Габарит считается циклом проходя по всем точкам фигуры и сравнения на MAX\MIN Да я могу и точно вычислить новые координаты с помощью всяких тангенсов-косинусов, но хотелось бы, конечно, более простое решение... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:01 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
авторавтора предупреждали, что графический движок - затратное дело. Я боюсь, что писать все руками затратнее на несколько порядков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:03 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
no56892, да. В человекогодах измеряется. Пусть ищет готовое или ГИС возьмёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:07 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
else12но хотелось бы, конечно, более простое решение... а зачем вопрос задал? Продолжай ту тему что была. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:08 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Petro123else12но хотелось бы, конечно, более простое решение... а зачем вопрос задал? Продолжай ту тему что была. Нет, чтобы помочь человеку... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:46 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
else12Нет, чтобы помочь человеку... тебе дали задачу стоимостью миллион. Сожалею. Могу только отговорить. Либо чёткое ТЗ составь за бабки с заказчиком и оговори что там НЕ будет по функционалу. Или тебе формулы дать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 13:49 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Petro123Или тебе формулы дать? Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 14:12 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
else12, первую дал - по габариту. Цикл непонятен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 14:14 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
else12Сами координаты при повороте вычислить при помощи тангенсов и косинусов можно - только они в данном случае мало помогают... Смотри. Поскольку речь зашла о косинусах и синусах. Эта вся "математика на плоскости" давно формализована в It и называется affine transformations. Иногда в других источниках - линейные преобразования. Почему линейные. Потому-что прямая после такого преобразования остается прямой. Сюда входят перенос (translate), масштаб (scale), поворот (rotate), и иногда еще добавляют скос (skew). Далее, решать проверку попадания мыши в rectangle можно разными путями. В идеале я-бы предложил поискать готовый API в части java2d (Graphics, AffineTransform, Point2D). Я думаю что там должны быть такие функции. В части технического hint - если фигура простая (прямая, квадраНт, прямоугольник) с разворотом относительно точки, то можно видовые кординаты ((xm,ym) мышка) подвергнуть обратному повороту и получить тривиальную проверку (xm,ym) располагается справа или слева относительно осей вида y=const, x=const. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 14:34 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
maytonя-бы предложил поискать готовый API в части java2d в простой rect попадание и делать нечего. А вот в повёрнутый - это уже попадание в полигон. Готового нигде нету (в платформе). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 14:42 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Petro123Готового нигде нету (в платформе). для простого прямоугольника в винде есть: https://msdn.microsoft.com/en-us/library/windows/desktop/dd162882(v=vs.85).aspx PtInRect ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 14:50 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
И вообще, я думаю у него координаты глобальные, а не канвас в пикселях. Поэтому работы там - море. Удачи аффтару! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 14:52 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Petro123И вообще, я думаю у него координаты глобальные, а не канвас в пикселях. Поэтому работы там - море. Удачи аффтару! Да можно сделать проще - в центре прямоугольника поместить круг, который является чем-то вроде ручки, за которую надо взять прямоугольник. Координаты круга при вращении не меняются. Собственно, я так уже и сделал. Не очень нравится такое решение, но в принципе, оно вполне рабочее. Просто думал здесь есть гуру, которые помогут сделать проще и лучше... Но, в принципе, и так сойдет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 15:04 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
else12Да можно сделать проще +1 так проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 15:12 |
|
||
|
Java2d - отследить нажатие мыши на rectangle при повороте rectangle
|
|||
|---|---|---|---|
|
#18+
Э... да тут вопрос вообще не про это! Тебе круг не нужен. Тебе нужен угол между центром прямоугольника (или центром вращения) и первым мышкокликом в контексте выделения прямоугольника. Далее просто замеряй как этот угол изменился. При этом мышка не обязательно должна стоять на окружности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2016, 15:54 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39292073&tid=2123818]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
368ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 216ms |
| total: | 673ms |

| 0 / 0 |
