Member 13358631 Ответов: 4

Как узнать, соприкасаются ли два прямоугольника друг с другом(C#, UWP app)


im читал о interset /intersetWith ,
но я не вижу этого метода ..
я ищу уже два часа, но ничего не нахожу..

Что я уже пробовал:

// у меня есть объект rectangle
Прямоугольник a = новый прямоугольник();
Прямоугольник b = новый прямоугольник();

// затем я пытаюсь проверить, касается ли "А" "Б", используя метод пересечения, и я не вижу его ..

PIEBALDconsult

Недостаточно информации. Какой фреймворк/библиотека? Пожалуйста, используйте "улучшить вопрос", чтобы добавить контекст, детали и исправить написание слова"пересечь".

4 Ответов

Рейтинг:
2

Graeme_Grant

Поиск в Google обнаружил ряд полезных ссылок: обнаружение столкновений UWP 2d-поиск в Google[^]

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


* UWP Game Dev-обнаружение столкновений - YouTube[^]

Обновление 2: UWP на самом деле имеет Класс Ректел[^] с помощью Intersect(Rect, Rect) метод:

Цитата:
Возвращает территории двух заданных значений прямоугольника, которые пересекаются, как новый прямоугольник. Вместо этого код C# и Microsoft Visual Basic должен использовать Intersect.


Рейтинг:
1

Patrice T

В конце начальной школы каждый может сказать, касаются ли 2 прямоугольника друг друга, не рисуя их.
Возьмите лист бумаги и карандаш. Используйте свой мозг и решите проблему вручную. Поскольку Гарри Поттер не дал вам решение, нет никакой магии, и решение не прыгнуло вам в лицо.
Вы решили проблему, следуя процедуре, которая является вашим алгоритмом. Вам нужно записать шаги механическим способом (как компьютер). Программа будет следовать этим шагам.

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей выполнять вашу работу, а для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание пройденных вами курсов, а также проблем, возникающих при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и начинайте работать. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.
Создание алгоритма-это в основном поиск математики и необходимая адаптация к вашей реальной задаче.

Идея "развития" заключается в том, что это слово предполагает: "систематическое использование научно-технических знаний для достижения конкретных целей или требований." BusinessDictionary.com[^]
Это не то же самое, что "быстро гуглите и сдавайтесь, если я не могу найти точно правильный код".

[Обновление]

Цитата:
я ищу уже два часа, но ничего не нахожу..

Иногда гораздо быстрее построить собственное решение, чем часами гуглить.
Когда вам дают 2 прямоугольника, найти, если они разделены, соприкасаются, насекомое или перекрываются, - все это проблемы, использующие вариации одной и той же логики.
Получите 2 прямоугольника A=(1,1,2,3) и B=(5,5,6,7), просто взглянув на координаты, ваш мозг скажет вам, что они разделены.
Подумайте о логике, которую вы только что использовали, ваша программа будет использовать ту же логику.


BillWoodruff

Проголосовал №1 за то, что это бесполезный комментарий, а не решение. Также сообщается как злоупотребление за ваше необоснованное оскорбление ОП.

Patrice T

Привет, Билл, нисходящий голос не делает меня счастливым, но я ценю, что ты даешь причину своего голоса, по крайней мере, я знаю, что тебе не нравится.
"ваше необоснованное оскорбление": не намерение, может быть связано с тем, что английский не является моим основным языком.
Я знаю, я, как правило, чтобы получить немного расстроен, когда я вижу такие вопросы, Что можно перефразировать как "я пришел сюда, потому что я не смог найти полное решение выйти на интернет-такой основной задачи.", операцию совершенно забывают "построить ваши собственные решения" часть работы программиста.

Рейтинг:
0

BillWoodruff

Вам нужно использовать класс ' RectHelper [^] в Windows. UI.Xaml,который предоставляет 'Intersect(Rect, Rect) и другие полезные методы.


Graeme_Grant

Да, я уже упоминал об этом... ;)

BillWoodruff

Привет, Грэм, в то время, когда я писал этот ответ, я не видел вашей правки вашего поста; если бы я это сделал, я бы не опубликовал это.

твое здоровье, Билл

Graeme_Grant

Все благо ... не требуется много времени, чтобы найти решения с помощью поиска Google. ;)