Я работаю над автономным ровером, который частично перемещается с помощью ультразвуковых датчиков приближения. Перед тем, как мы реализуем аппаратное обеспечение, мы хотим провести некоторое тестирование наших алгоритмов с помощью симулятора, который я сейчас пишу.Найти все пиксели заданного радиуса от точки, ограниченной внутри дуги
Одна из задач, с которой я столкнулся, состоит в том, что ультразвуковой датчик имеет поле зрения 60 градусов. Если объект обнаружен, любая точка вдоль этой 60-градусной дуги в этом радиусе может иметь объект, но все точки ниже этого радиуса гарантируют не иметь объекта.
Что мне нужно сделать, это написать функцию, которая задает координату (x, y) и подшипник (я ограничиваю это на 4 кардинала на данный момент), и пусть он вернет мне список пикселей внутри радиус и список пикселей в этом радиусе. При повторных сканированиях из нескольких мест и подшипников все объекты могут быть найдены.
Моя первоначальная мысль заключалась в том, чтобы работать итеративно. Начните в ряд перед датчиком и развернитесь назад и вперед в более широком сканировании (1,1,3,3,5,5,7,7 и т. Д.). Однако в конечном итоге радиусы прекращают выравнивание со строками. Мой новый путь поиска - это выяснить, как рисовать дугу с пикселями, а затем направить радиус до первого столкновения.
Этот вопрос задает аналогичный вопрос, но интересуется только конкретными точками, поэтому я считаю, что это принципиально другая проблема.
«Семя» для этой души d - это любой пиксель внутри сектора? Думаю, тогда я мог бы использовать разницу между двумя радиусами, чтобы получить пиксели в кольцевом сегменте? – Huckle
Да, любой пиксель может служить семенем. Я думаю, что четвертое условие было бы лучше для кольца (чтобы избежать ненужного двойного перечисления точек внутреннего круга) – MBo
Я попробую это и отчитаю. – Huckle