Функция OnMouseOver для QuadCurve Java

я создаю программу для рисования графиков, но у меня есть проблема, мне нужно знать, находится ли мышь над QuadCurve. Как бы создать функцию, которая работает? программа, которую я делаю, - рисовать графики (рисовать узлы и ребра). чтобы нарисовать ребра с помощью мыши в точке, просто нажмите JPanel и перетащите в конечную точку, а также нарисуйте объект Graphics2D QuadCurve2D и сохраните его в массиве объектов. каждый объект в объекте сохраняется QuadCurve2D и он содержит 3 точки (начало, контроль, конец), теперь мне нужен метод для устранения любого ребра, которое это рисует на JPanel и для этого у каждого ребра должен быть метод, который принимает в качестве параметра точку мыши и возвращает true, если точка находится на кривой


person user2701590    schedule 20.08.2013    source источник
comment
не могли бы вы дать нам больше информации о том, что вы пытаетесь сделать, вы могли бы использовать короткий, самодостаточный правильный пример sscce.org   -  person Abstract    schedule 21.08.2013
comment
программа, которую я делаю, - рисовать графики (рисовать узлы и ребра). чтобы нарисовать ребра с помощью мыши в точке, просто нажмите JPanel и перетащите в конечную точку, а также нарисуйте объект Graphics2D QuadCurve2D и сохраните его в массиве объектов. каждый объект в объекте сохраняется QuadCurve2D и он содержит 3 точки (начало, контроль, конец), теперь мне нужен метод для устранения любого ребра, которое это рисует на JPanel и для этого у каждого ребра должен быть метод, который принимает в качестве параметра точку мыши и возвращает true, если точка находится на кривой   -  person user2701590    schedule 21.08.2013
comment
Я также испытываю эту проблему. Вы когда-нибудь находили решение? Если да, то не могли бы вы объяснить это для меня?   -  person retrovius    schedule 14.01.2018


Ответы (1)


Подключите прослушиватель движения мыши к вашей панели, затем в событиях движения мыши используйте метод пересечения объекта QuadCurve2D, чтобы определить, попадает ли он в прямоугольник с центром в новой позиции курсора мыши. Поэкспериментируйте с параметрами ширины и высоты, чтобы найти то, что вам больше всего подходит.

person Tassos Bassoukos    schedule 22.08.2013
comment
спасибо за ответ, но метод Intersect не только возвращает true, если точка находится на кривой, но также возвращает true, если точка находится в области, создающей кривую, мне просто нужно прийти первым. - person user2701590; 23.08.2013
comment
Затем просто используйте квадрат размером с пиксель. - person Tassos Bassoukos; 23.08.2013
comment
Я не думаю, что объяснил правильно, на этом рисунке вы можете увидеть, что мне нужно, чтобы помочь мне, пожалуйста i .stack.imgur.com/Em3Y9.png метод для определения того, находится ли точка (точка мыши и то, что у меня есть) внутри кривой (объект QuadCurve2D), метод Intersect или Contains возвращает true, если точка находится за пределами кривой i.stack.imgur.com/WTdbM.png (через красный цвет возвращает true), а я этого не хочу. - person user2701590; 24.08.2013