|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.01.2022, 03:08 | #1 |
Новичок
Джуниор
Регистрация: 10.01.2022
Сообщений: 2
|
Посчитать, сколько кругов имеют хотя бы одну общую точку с прямоугольником
Нужно написать программу по заданию.
На плоскости задан прямоугольник со сторонами, параллельными осям, и множество различных кругов. Посчитать, сколько кругов имеют хотя бы одну общую точку с прямоугольником. Язык: C++ Последний раз редактировалось hehehehe; 10.01.2022 в 19:13. |
10.01.2022, 12:21 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
1. Наверно, всё-таки не кругов, а окружностей.
2. Язык программирования, конечно, секретный - что-то навроде Lua, Brainfuck, Алгамс ? Даю подсказку: для каждой окружности вычислить расстояния от центра до вершин прямоугольника. Если хотя бы одно из них меньше радиуса - то есть общие точки. Но вот если все 4 расстояния меньше - фигушки, таких точек нет, бо прямоугольник унутре окружности. Но подумавши - тут есть одна засада: если центр окружности внутри прямоугольника, то могут быть пересечения, а все расстояния больше радиуса. Тогда надо считать расстояния не до вершин, а до сторон. Задача не так проста, как на первый взгляд. Баксов на 10. Последний раз редактировалось digitalis; 10.01.2022 в 13:16. |
11.01.2022, 01:07 | #3 |
Новичок
Джуниор
Регистрация: 10.01.2022
Сообщений: 2
|
digitalis, C++
|
11.01.2022, 19:02 | #4 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Вчера переводил одну статью о столкновениях шаров и натолкнулся на такое понятие, как "сумма Минковского".
Если коротко, то: 1. Для окружности, центр которой вне прямоугольника: - "раздуваем" прямоугольник на радиус окружности, а окружность "сдуваем" до точки. Теперь у вас есть новый прямоугольник и точка. Если точка внутри прямоугольника или на его границах то окружность имеет пересечение, хотя бы одну точку, с прямоугольником. Тут нет всех проверок. Это только для случая, когда центр круга вне прямоугольника и прямоугольник не лежит внутри круга целиком. ...
Как-то так, ...
|
12.01.2022, 20:22 | #5 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
digitalis
Цитата:
Если всё же кругов, то это пересечение фигур. Тогда предложенный вариант, с суммой Минковского, подходит лучше. Случаи, когда круг внутри прямоугольника или прямоугольник охватывается кругом проверяются проще.
Как-то так, ...
|
|
13.01.2022, 11:45 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
ТС махнул лапой уже на все эти круги, неинтересно стало ему. А пересечение фигур - конечно, проще.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как перенести данные таблиц в одну общую | finik83 | Microsoft Office Excel | 2 | 20.04.2019 17:09 |
всё тот же SQL ) нужно разом влить данные в 4 таблицы и вывести в одну общую | SanekWK | БД в Delphi | 1 | 08.09.2016 01:12 |
Определить сколько членов последовательности с номерами 1,2,4,8,16,.. имеют значение | Kat9 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 22.05.2013 21:23 |
копирование ячеек из книг в одну(общую) | DEsh | Microsoft Office Excel | 3 | 12.11.2010 12:38 |
Все ли пары элементов линейного массива имеют только одну общую цифру в своей записи? с++ | agent007 | Visual C++ | 3 | 07.07.2010 02:36 |