На этом уроке мы создадим новый класс Box. Квадратики тоже хотят играть в эту игру, и просят их научить. Пока они ещё не умеют ловить, но уже смогут отображаться и передвигаться.
Если я правильно понял, то вот этот код должен давать результат пересекаются ли прямоугольники: var intersects = function ( a, b ) { return ( a.y < b.y1 || a.y1 > b.y || a.x1 < b.x || a.x > b.x1 ); } На сишарп его можно переписать так: // Структура для сохранения координат прямоугольника struct Rect{ public int x; public int y; public int x1; public int y1; public Rect(int x, int y, int x1, int y1) { this = new Rect(); this.x = x; thix.y = y; this.x1 = x1; this.y1 = y1; } } // Передаем в функцию два прямоугольника и она возвращает логический результат пересекаются ли они public bool IsCross(Rect a, Rect b){ return ( a.y < b.y1 || a.y1 > b.y || a.x1 < b.x || a.x > b.x1 ); }
Научился: Вроде тоже самое что и в прошлых уроках, но с новым объектом Я решал похожую задачу когда-то. Мне нужно было найти общую площадь всех пересекающихся или касающихся разносторонних квадратов из 100. Касаться или пересекаться будут рандомно, если вообще будут. Найти максимальную площадь (их же может быть много разных). Там я тоже искал пересечения прямоугольников. Но уже почти не помню как. Да и лень, если честно.
Научился: Научился использовать интерфейс. То ли привык к окружностям, но мне кажется прямоугольники смотрятся более красивыми. Трудности: Ничего сложного. Только у меня Голя не двигался, пришлось смотреть/вспоминать где функция за это отвечает. Даже немного пришлось просмотреть прошлый урок и вспомнить.