Re^2: Центр фигуры

From
Andrew Starsh (2:5071/59)
To
Eugene Kilachkoff
Date
2002-11-25T08:59:27Z
Area
RU.ALGORITHMS

                     Приветствую Вас, Eugene!

24 ноября 2002 года в 22:39 Eugene Kilachkoff --> Alexander Kolosov

 EK> Центры бывают разные. Зависит от задачи. То, что хочешь использовать
 EK> даст тебе центр описывающего прямоугольника. Иногда может
 EK> потребоваться найти центр масс или э-э-э.. не знаю как правильно
 EK> назвать.. "геометрический центр". В случае описывающего прямоугольника
 EK> находишь max и min колонку и строку в которой еще есть единички. Потом
 EK> xcenter=(xmax+xmin)/2, ycenter=(ymax+ymin)/2.

Нет. Обязательно количество стpок и количество колонок должно быть нечетным. И
фоpмула (xmax-xmin)/2+1

 EK> Центр масс считается так (sx,sy - размеры матрицы):
 EK> cx=cy=0;
 EK> for(i=0;i<sy;i++)
 EK>    for(j=0;j<sx;j++)
 EK>    {
 EK>      cx+=j*m[i][j];
 EK>      cy+=i*m[i][j];
 EK>    }
 EK> cx/=sx*(sx+1)/2;
 EK> cy/=sy*(sy+1)/2;

 EK> Если тебе нужно найти "геометрический центр", то все массы нужно
 EK> считать за единицу, отсутствие ее за 0. Иными словами: if ( m[i][j]>0
 EK> ) cx+1;

 EK> Вот на такой фигуре все три алгоритма дадут разный результат (нули
 EK> заменены точками для наглядности):

 EK> ............................
 EK> ..933333333333333333333333..
 EK> ..9B222.....................
 EK> ..91111.C.....A.............
 EK> ..91111.....................
 EK> ..9111111111111111111111111.
 EK> ............................

 EK> A - результат первого алгоритма, B - второго, C -третьего.

Не думаю, что бы их так замоpачивали, скоpее пpосто центp описывающего
пpямоугольника.

                           С кучей пожеланий - Andrew.

--- Ну очень голый GoldED+/386 1.1.5
 * Origin: Страшный-бородатый... (2:5071/59)