У меня есть массив открытых NSWindow
s. Как я могу проверить, пересекаются ли какие-либо из них?Как проверить, пересекаются ли окна?
0
A
ответ
1
Я не уверен, что есть способ сделать это в стороне от исчерпывающего поиска. Вы можете использовать 2 углов (опорный угол, вернулись, проверив положение окна, и противоположный угол, или опорный угол плюс размеры окна) и для каждого окна, проверяя, если какие-либо из углов других окон лежат между углами текущего окна. Этот исчерпывающий подход - O (n^2), но он должен быть довольно быстрым, если вы не имеете дело с тысячами окон.
Некоторые псевдокод:
inside (point, window):
if point.x less than window.corner1.x and point.x greater than window.corner2.x
and point.y less than window.corner1.y and point.y greater than window.corner2.y,
true.
false.
check_for_collision (window1, window2):
if (window1.corner1 inside window2) or (window1.corner2 inside window2), true.
else if window2.corner1 inside window1 or window2.corner2 inside window1, true.
otherwise, false.
check_group_of_windows (windowlist):
loop:
if size of windowlist is 1 or less, stop looping
let window be windowlist.pop
for each otherwindow in windowlist:
if check_for_collision(window, otherwindow), true.
false.
Я надеюсь, что имеет какой-то смысл.
Смежные вопросы
- 1. Как проверить, пересекаются ли CLCircularRegions
- 2. Как проверить, пересекаются ли 2-сегментные сегменты?
- 3. Как проверить, пересекаются ли две строки drawString()?
- 4. проверить, пересекаются ли два элемента div HTML
- 5. Vtk проверить, пересекаются ли объекты полидата
- 6. Как проверить, пересекаются ли два выпуклых корпуса в Matlab?
- 7. Как проверить, пересекаются ли две линии или нет?
- 8. Как проверить, пересекаются ли круги друг с другом?
- 9. Как проверить, пересекаются ли две линии на сетке?
- 10. Как определить, пересекаются ли два CGRect?
- 11. Определите, пересекаются ли круги.
- 12. Как определить, пересекаются ли два выпуклых многоугольника?
- 13. Objective-C проверить, пересекаются ли подвидности повернутых UIViews?
- 14. Что является самым простым способом проверить, пересекаются ли два CRgn?
- 15. проверить, пересекаются ли два квадрата друг с другом
- 16. Более быстрый способ проверить, какие объекты пересекаются?
- 17. Как проверить, наложена ли часть внешнего окна
- 18. Проверьте, пересекаются ли два адреса CIDR?
- 19. Как найти, пересекаются ли две серии?
- 20. Как определить, пересекаются ли два полигона?
- 21. Как определить, пересекаются ли NSBezierPaths в какао?
- 22. Проверьте, не пересекаются ли даты?
- 23. Определите, пересекаются ли две строки
- 24. SQL. Проверьте, пересекаются ли 2 списка
- 25. Как проверить, если два прямоугольника, один повернут, пересекаются в SFML
- 26. Как можно легко определить, пересекаются ли 2 ROI в OpenCv?
- 27. Как найти, пересекаются ли два отрезка (не две прямые линии)
- 28. Как проверить, попадает ли точка в MKRect
- 29. Как определить, пересекаются ли два объекта Golang net.IPNet?
- 30. Проверьте, не пересекаются ли два прямоугольника
Согласовано. Напишите себе метод проверки, перекрываются ли они, проверяя их фрейм. '[[self window] frame]' будет здесь. – guitarflow
Не могу использовать CGRectIntersectsRect? – Yep