2013-08-20 2 views
1

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

+0

Вы бы предоставили нам дополнительную информацию о том, что вы пытаетесь сделать, чтобы использовать короткий, самодостаточный правильный пример http://sscce.org/ – Nivde

+0

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

+0

Я также испытываю эту проблему. Вы когда-нибудь находили решение? Если да, не могли бы вы объяснить это мне? – retrovius

ответ

0

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

+1

спасибо за ответ, но метод Intersect не только возвращает true, если точка находится на кривой, но также возвращает true, если точка находится внутри области, которая создает кривую, мне просто нужно прийти первым. – user2701590

+0

Затем просто используйте квадрат размером в пиксель. –

+0

Не думаю, что я правильно объяснил, на этой картинке вы можете увидеть, что мне нужно, чтобы помочь мне, http://i.stack.imgur.com/Em3Y9.png метод, чтобы определить, является ли точка (точка мыши и то, что у меня есть) находится внутри кривой (объект QuadCurve2D), метод Intersect или Contains возвращает true, если точка находится за пределами кривой http://i.stack.imgur.com/WTdbM.png (по красной окраске возвращается true), и я не хочу этого. – user2701590

Смежные вопросы