Центр фигуры

From
Andrey Dashkovsky (2:5002/46.4)
To
Alexander Kolosov
Date
2002-11-25T17:31:49Z
Area
RU.ALGORITHMS
Hello Alexander.

23 Ноя 02 20:34, you wrote to Andrew Starsh:

 AK>>> Нужно определить координаты центра фигуры обозначенной
 AK>>> единицами. Насколько я понял, нужно достроить фигуру до
 AK>>> прямоугольника и найти пересечение его диагоналей. Какой
 AK>>> алгоритм лучше использовать?

 AS>> Имхо, куда как пpоще сделать так: найти сpеднюю стpоку, (n-1)/2+1,
 AS>> где n - количество непустых стpок. Потом опpеделить во всех
 AS>> непустых стpоках самую левую непустую колонку (L) и самую пpавую
 AS>> непустую (R). (R-L)/2+1 Все это конечно, если фигуpы коppектны -
 AS>> то есть, непустых стpок - нечетно, и непустых колонок - тоже.

 AK> Да. Забыл сказать, что таких фигур в матрице может быть несколько,
 AK> например так:

 AK> 0000000
 AK> 0110011
 AK> 0110001
 AK> 0111001
 AK> 0000000
 AK> 0011110
 AK> 0000110

 AK> И для каждой нужно найти центр.

Я вот подумал, можно же воспользоваться обычной заливкой. Про заливку как-то
обсуждалось, скажу только обязательно делать не рекурсией, а эмуляцией рекурсии
и при этом использовать не стек, где начинать с последней запомненной клетки, а
очередь, т.е. продолжать с той клетки, которая была запомненна первой, и при
этом заливать не одну клетку, а строку сразу из найденной клетки, а можно даже:

              2
            332333
        33333313
              2
              2
              2


Andrey

... Мальчик с пальчик пошел сдавать кpовь... Kакая глyпая, нелепая смеpть..
--- GoldED+/386 1.1.4.7
 * Origin: Всёфигня кроме пчёл,хотя пчёлы,еслиподумать,тоже фигня (2:5002/46.4)