У меня есть проблема, чтобы решить. Посмотрите на картинку:
Изображение .
- Эллипс, заполненный красным, является препятствием.
- Черные точки - начало и конец "дороги".
- Синяя линия - кратчайший путь из одной точки в другую.
Я рисую препятствия с помощью мыши (щелчок мыши создает эллипс), затем я вставляю шнуры начала и конца, а затем использую DrawLine для рисования линии от точки к точке. Вопрос здесь в том, как я могу проверить или посчитать, сколько пикселей линии проходит через препятствие?
Я думал о том, чтобы поместить каждый пиксельный цвет в двумерный массив перед рисованием линии, а затем как-то проверить его по числам, посчитав кратчайший путь от точки к точке и проверив, сколько 255 (число препятствий) встретится в этом. массив? Как видите, я могу создать препятствие таким образом, чтобы линия проходила через середину, только некоторую ее часть или даже рядом с ней. Мне просто не хватает идеи, как это сделать. Мне это нужно, чтобы я мог оценить каждую «дорогу». Чем больше оно проходит через препятствие, тем меньше оно получает.
Есть идеи? Любой алгоритм?