Если я нарисую круги, используя Java2D. Есть ли способ отображения некоторого текста, когда я наводил курсор на любой из кругов? то есть я хочу отобразить идентификатор этого круга и некоторые другие вещи.Java 2D. Перемещение по кругу
ответ
Вам нужно будет сохранить все центры и радиус и проверить его на текущую позицию мыши.
это довольно простой функционирование. Если расстояние от положения мыши и центр одного из кругов меньше, чем радиус, мышь находится внутри него, и вы можете нарисовать нужное сообщение. не
есть вопрос здесь, что показывает математику: Equation for testing if a point is inside a circle
Надежда, которая помогает ...
Существует класс Polygon, которые могли бы сделать это для вас (содержит метод), но ни один из реализующие классы - это круг: S
Существует несколько способов выполнить то, что вы хотите. Это одно из решений. Я предполагаю, что вы используете Ellipse2D для создания круга. И я предполагаю, что вы рисуете круг на JComponent, как JPanel.
Итак, вы объявляете эллипс.
Shape circle = new Ellispe2D.Double(x, y, width, height);
Затем вы реализуете MouseMotionListener, чтобы определить, когда пользователь перемещает мышь по JPanel.
public void mouseMoved(MouseEvent e){
if(circle.contains(e.getPoint())){
//the mouse pointer is over the circle. So set a Message or whatever you want to do
msg = "You are over circle 1";
}else{
msg = "You are not over the circle";
}
}
Затем в краску() или метода paintComponent (в зависимости от того один переопределении сделать картину):
g2.fill(circle);
g2.drawString(msg, 10, 10); //write out the message
Я не знаю, если вы можете сделать это непосредственно. Но вы можете использовать простую математику для проверки положения курсоров: (x-a)^2 + (y-b)^2 = r^2, где x, y - положение курсора a, b - центр окружности, а r - радиус.
- 1. Перемещение SKNode по кругу
- 2. Перемещение указателя массива по кругу в Java
- 3. перемещение объекта по кругу - андроид
- 4. Перемещение объекта по кругу из случайного местоположения
- 5. Перемещение по выделенному кругу в C#
- 6. Интеграция по кругу в 2D-массиве
- 7. Java - Вращающиеся точки по кругу
- 8. Javascript линия по кругу
- 9. Поиск координаты по кругу
- 10. Перемещение и поворот треугольника одновременно по кругу: Android
- 11. Движение трижды - перемещение по кругу за фиксированный период времени
- 12. Вращающиеся точки Java Canvas по кругу
- 13. Как сделать форму java анимацией по кругу?
- 14. Как установить изображение по кругу
- 15. Перемещение и перемещение 2D геймобжекты
- 16. Перемещение объекта по путевым точкам в 2D
- 17. Перемещение игрового объекта в 2D Java
- 18. Положение дуги по кругу
- 19. размещение divs по кругу
- 20. Обстрел снарядов по кругу
- 21. Создание точек по кругу
- 22. Распределение данных по кругу
- 23. Создание «div» по кругу
- 24. Текстовый блок по кругу
- 25. Повернуть текст по кругу
- 26. Запрос по кругу таблиц
- 27. Центрируйте текст по кругу
- 28. UIImage по кругу
- 29. Упорядочить UILabels по кругу
- 30. Выбор соседей по кругу
Лучшее использование уравнения окружения (изменение == для <), поскольку для проверки расстояния требуется вычисление квадратного корня. –
true. Я должен был сказать квадрат расстояния по сравнению с квадратом радиуса: D Я указал на другую ссылку вопроса, которая имеет код Python для этого: D спасибо за исправление: D –