Нет. компонентов вокруг и на Line2D.I хочу найти только перекрывающиеся. Я попытался line.getbounds(). пересекает (компонент), но он дает компоненты прямоугольной области, которые мне не нужны. Также расстояние иногда дает мне компонент который очень близок к линии, но не по линии. Любое решение?Определить компонент, перекрываемый Line2D
ответ
Короткий ответ: проверить, по крайней мере, один из этих двух условий истинно
- любая конечная точка линии находится внутри компонента, используйте метод содержит
- линия пересекает любую сторону границ компонента, используйте метод пересечения.
Подробное описание: Возможны следующие случаи:
- одна конечная точка линии находится внутри компонента (это включает случай, когда линия полностью внутри компонента);
- линия пересекает компонент, но все конечные точки линии находятся за пределами объектов, в этом случае они пересекаются с двумя сторонами, но одного достаточно для проверки.
- во всех других случаях, линия и компонент не перекрывают друг друга, и нам все равно.
Только средняя пуля немного сложна, однако, поскольку вы тестируете только jкомпонент, жизнь проста, потому что они представляют собой прямоугольники, выровненные с осью. Вы можете легко вычислить конечную точку сторон границ компонента. Оценки задаются точкой (x, y) шириной w и высотой h. Это дает вам четыре стороны, как:
- (х, у) - (х + ш, у)
- (х, у) - (х, у + з)
- (х, у + Н) - (х, у + з)
- (х + ш, у) - (х + ш, у + з)
спасибо..и работал –
@RajTrivedi, я рад узнать, что это вам помогло. Примите и проголосуйте за ответ, чтобы помочь другим людям, у которых есть схожие проблемы. – innoSPG
Если компоненты вы говорите о являются Java-компонентов, то они имеют прямоугольную форму и вы можете использовать line.intersects (component.getBounds())
, если они любой другой вид формы, вы должны определить, что форма и работать с линией математически, если они не являются прямоугольными
Что вы имеете в виду под 'внахлест'? – innoSPG
есть две конечные точки линии, как два Jbuttons ... линия вычерчена над этими двумя кнопками. Я хочу найти только эти JButtons..и не какие-либо другие JButtons, которые могут быть рядом с линией, но не на линии. –