Как проверить, находится ли нажатие мыши на строке в Java - PullRequest
0 голосов
/ 29 марта 2020

Я создаю приложение java и хочу, чтобы пользователь мог щелкнуть по строке, чтобы произошло событие. Линия просто определяется двумя конечными точками, каждая из которых имеет координаты ax и ay.

Любые идеи о том, как я могу проверить, собрана ли позиция из события нажатия мыши (с координатами ax и y) можно проверить, находится ли он в этой строке?

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

1 Ответ

2 голосов
/ 29 марта 2020

Общая идея заключается в том, что вы должны рассчитать расстояние между нажатой точкой и вашей линией. Если расстояние меньше, чем, скажем, 2 пикселя, считайте, что щелчок достаточно близок.

Вы можете сделать математику самостоятельно , если вы так склонны. В стандартной библиотеке Java класс java .awt.geom.Line2D имеет методы для проверки расстояния между точкой и линией или отрезком.

double distance = Line2D.ptSegDist​(lineStartX, lineStartY, 
                                   lineEndX, lineEndY,
                                   clickX, clickY);

if (distance < 2) {
    // success!
}
...