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)