Здравствуйте, T4r4sB, Вы писали:
TB>Здравствуйте, Che, Вы писали:
Che>> Здравствуйте друзья, такой вопрос: Che>>как приблизить произвольный многоугольник прямоугольником, так чтобы сумма площадей отсекаемых и прибавляемых кусков была минимальна?
Che>> В opencv реализован поиск прямоугольника минимальной площади, окружающего данный — это не то, что нужно.
Che>>Есть ли какой-то готовый алгоритм (и его реализация на С++, в идеале)? Или какие-то разумные мысли, куда смотреть?
Che>> С уважением.
TB>Мминимум достигается в положении, в котором длина каждой стороны прямоугольника ровно вдвое превышает длину пересечения этой стороны с исходной фигурой (либо касается некой грани исходной фигуры), ну просто по принципу "ищи положение, при котором микроперемещения не имеют смысла" (официально называется "лемма Ферма о локальном экстремуме"). Я бы искал этот минимум итеративно, чтоб не решать линейные уравнения.
Спасибо, действительно логично про половину каждой стороны. Понятно, что это дает ноебходимое условие локального экстремума. Я думаю, для моих целей этого вполне хватит. Хотелось бы, конечно, найти готовую программную реализацию чего-нибудь подобного, но вроде я и так придумал как более-менее разумно это реализовать.