October 28th, 2010

nyaload

(no subject)

Понадобилось собрать одну полу-портированную под windows программу по распознаванию пешеходов.
Cобрал C++ Boost. Cкачал, прочитал инструкцию по сборке и собрал ещё три библиотеки (svm, blitz++, opencv), победил шаблонный C++ (friend template vs template friend), победил макросы min/max внутри windows.h, прописал пути, победил линковку, крашнулся внутри boost, ещё раз пересобрал все библиотеки с правильной runtime-библиотекой.
Никакого битья головой об стену, всё прошло быстро, каждая ошибка была сразу понятна, чинилась мгновенно без офигевания от мистики.
Несмотря на два года питона пальцы помнят все шорткаты Visual Studio.

Таки повторяю, <x> вполне удобен, когда к нему привыкаешь.

nyaload

проверка пересечения: сведение к меньшим размерностям

Для объектов A и B со связной границей утверждение "А пересекается с B" эквивалентно "границы А и B пересекаются || A вложен в B || B вложен в А"

Можно использовать для установки факта пересечения двух полигональных моделей или многоугольников на плоскости или попадание в область видимости камеры.

А и B должны быть со связной границей ( это ограничение самое важное при прикладном применении ). А так же замкнутыми, непустыми, и должны существовать точки вне A и B ( A|B не должно покрывать целиком всё пространство ).

Для полосок на торе, шайб-колец в 2d, отрезков на одномерной прямой, утверждение не сработает, так как их граница не связна.
Условие что есть точки вне A и B тоже необходимо, иначе можно привести антипример A={(x,y)|x2+y2 <= 2}, B={(x,y)|x2+y2 >= 1} или арбуз упакованный в два презерватива.

Кстати, теорему придумал сам, но наверное тоже баян, так как учебников по топологии не читал.