я создаю программу для рисования графиков, но у меня есть проблема, мне нужно знать, находится ли мышь над QuadCurve. Как бы создать функцию, которая работает? программа, которую я делаю, - рисовать графики (рисовать узлы и ребра). чтобы нарисовать ребра с помощью мыши в точке, просто нажмите JPanel и перетащите в конечную точку, а также нарисуйте объект Graphics2D QuadCurve2D и сохраните его в массиве объектов. каждый объект в объекте сохраняется QuadCurve2D и он содержит 3 точки (начало, контроль, конец), теперь мне нужен метод для устранения любого ребра, которое это рисует на JPanel и для этого у каждого ребра должен быть метод, который принимает в качестве параметра точку мыши и возвращает true, если точка находится на кривой
Функция OnMouseOver для QuadCurve Java
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
спасибо за ответ, но метод Intersect не только возвращает true, если точка находится на кривой, но также возвращает true, если точка находится в области, создающей кривую, мне просто нужно прийти первым.
- person user2701590; 23.08.2013
Затем просто используйте квадрат размером с пиксель.
- person Tassos Bassoukos; 23.08.2013
Я не думаю, что объяснил правильно, на этом рисунке вы можете увидеть, что мне нужно, чтобы помочь мне, пожалуйста i .stack.imgur.com/Em3Y9.png метод для определения того, находится ли точка (точка мыши и то, что у меня есть) внутри кривой (объект QuadCurve2D), метод Intersect или Contains возвращает true, если точка находится за пределами кривой i.stack.imgur.com/WTdbM.png (через красный цвет возвращает true), а я этого не хочу.
- person user2701590; 24.08.2013