Я пытаюсь написать небольшую программу, чтобы проверить, содержит ли один прямоугольник второй прямоугольник и расстояние между их границами должно быть меньше определенного числа, такого как 100 или 50. Когда я использую Метод Rectangle.contains он не заботится о различии между границами обоих прямоугольников. Есть ли способ, которым это может быть достигнуто?Проверьте, содержит ли прямоугольник другой прямоугольник с определенным расстоянием между границами
Проверьте, содержит ли прямоугольник другой прямоугольник с определенным расстоянием между границами
ответ
В Rectangle2D, мы имеем
булево содержит (двойной х, дважды у)
--- Tests if a specified coordinate is inside the boundary of this Rectangle2D.
булево содержит (двойные х, двойной у, двойной ш, двойной ч)
--- Tests if the interior of this Rectangle2D entirely contains the specified set of rectangular coordinates.
Так что невозможно узнать о расстоянии до моих знаний ...
пример кода и т. Д.?
Несмотря на это, вы должны будете сделать следующее: , если только оно не ошибается.
псевдо-код:
rectA = outside, rectB = inside
if rectB.left - rectA.left < x then distance is ok else do something
if rectB.top - rectA.top < y then distance is ok else do something
и т.д. и т.п.
Если прямоугольники ортогональны, и я предполагаю, что вы назвали contains(Rectangle rect)
. Тогда у вас есть только сделать дополнительные сравнения:
inside.x - outside.x >= LEFT_BORDER &&
outside.x + outside.width - inside.x - inside.width >= RIGHT_BORDER &&
inside.y - outside.y >= TOP_BORDER &&
outside.y + outside.height - inside.y - inside.height >= BOTTOM_BORDER
LEFT_BORDER
, RIGHT_BORDER
, TOP_BORDER
, BOTTOM_BORDER
являются для вас, чтобы определить.
Как вы вычисляете значения для leftBorder, rightBorder и т. Д. Я не вижу API для этого внутри класса rectnagle – user613114
@ user613114: Вы определяете их с любым значением, которое вы хотите. – nhahtdh
Вы можете использовать метод contains(Rectancle r) дважды: сначала проверить, находится ли внутренний прямоугольник внутри внешнего прямоугольника, а затем временно увеличить внутренний прямоугольник на половину порога в каждом направлении и повторить ту же проверку. На этот раз он больше не должен находиться внутри внешнего прямоугольника. Итак, в основном что-то вроде этого:
//Rectangle outer; // Do some proper setup for these two
//Rectangle inner;
int limit = 50;
boolean containsWithinLimits = outer.contains(inner);
inner.setLocation(inner.getX()-limit/2, inner.getY()-limit/2);
inner.setSize(inner.getWidth()+limit, inner.getHeight()+limit);
boolean containsWithinLimits = containsWithinLimits && !outer.contains(inner);
// Now reset the bounds:
inner.setLocation(inner.getX()+limit/2, inner.getY()+limit/2);
inner.setSize(inner.getWidth()-limit, inner.getHeight()-limit);
Xes решает эту проблему. Благодарю. Но моя главная проблема, над которой я работаю, не решена. И я создал отдельный поток для того же самого. [Http://stackoverflow.com/questions/10959703/swing-jxmapviewer-focus-on-a-object-and-set-corresponding-zoom-level]. Если у вас есть какой-либо опыт в этой проблеме, вы можете мне помочь. – user613114
Почему wiki сообщества? – Tharwen
@Tharwen По ошибке. : / – ZeroOne
- 1. Как рассчитать ограничивающий прямоугольник с заданным расстоянием
- 2. Создайте прямоугольник прямоугольника SVG с несколькими границами?
- 3. Найдите прямоугольник с наименьшей площадью, которая может удерживать другой прямоугольник
- 4. Проверьте, является ли прямоугольник координаты CLLocationCoordinate2D
- 5. Как узнать, образует ли прямоугольник прямоугольник?
- 6. Как отслеживать прямоугольник с определенным цветом
- 7. Прямоугольник содержит Point возвращает false
- 8. Как нарисовать многоугольник (Прямоугольник) на Google Maps с определенным расстоянием (метры) от точек ввода пользователя
- 9. Содержит прямоугольник выбора внутри изображения
- 10. Прямоугольник Java Прямоугольник всегда True
- 11. зажим прямоугольник внутри больше прямоугольник
- 12. Как добавить прозрачный прямоугольник в прямоугольник (график)?
- 13. Нарисуйте прямоугольник с цветом заливки и отдельными границами
- 14. iPhone - сделать прозрачный (очищенный) прямоугольник с настраиваемыми границами
- 15. Как проверить, содержит ли круг какой-либо прямоугольник? (in pygame)
- 16. «Рамный прямоугольник» против «Прямоугольник макета» в Xcode
- 17. JavaScript Проверка холста, если прямоугольник включает прямоугольник
- 18. Как получить прямоугольник, который содержит растровое изображение
- 19. Snap SVG - Проверьте, полностью ли преобразован прямоугольник внутри другого?
- 20. Получите прямоугольник внутри «паутины»?
- 21. SpatialLines с определенным расстоянием
- 22. Прямоугольник Рисунок
- 23. Как работает ChartView :: ZoomIn (Прямоугольник Прямоугольник)
- 24. Как нарисовать округленный прямоугольник (прямоугольник с закругленными углами) с OpenCV?
- 25. PDFBox - Прямоугольник с градиентом
- 26. pyplot прямоугольник анимация оставляет исходный прямоугольник отображается
- 27. Прямоугольник упаковки с ограничениями
- 28. Как проверить, пересекается ли прямоугольник?
- 29. Android-прямоугольник
- 30. Проверьте, содержит ли NSArray объект с определенным свойством
Являются ли прямоугольники ортогональными? – nhahtdh
Да, их оси всегда выровнены. – user613114