Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Центр симметрии


Автор: PPS05 7.11.2005, 15:01
Даны координаты точек. Необходимо определить, существует ли у этих точек центр симметрии и найти его. smile

Автор: sergejzr 7.11.2005, 15:09
По моему, чтобы найти центр, надо векторно сложить все точки и разделить на их количество. Потом можно смотреть дальюе..

Автор: Exekutor 7.11.2005, 15:37
Мне кажется, что среднее арифметическое от координаты Х и среднее арифметическое от координаты У и будет координатами центра. Если не прав то поправте.

Автор: PPS05 7.11.2005, 17:10
А как определить, что центра симметрии нет??? smile

Автор: Void 7.11.2005, 17:24
PPS05
Если я ничего не путаю, то центр симметрии, если он существует, обязан быть также центром тяжести. Как найти последний, уже сказали. Дальше - просто: берём каждую точку, и находим координаты её антипода относительно этого центра (допустим, центр в (Xc, Yc), точка в (X, Y). Тогда антипод в (2 * Xc - X, 2 * Yc - Y)). Если такая точка находится среди изначально заданных, идём дальше, нет - набор точек несимметричен.

Автор: WERITAS 7.11.2005, 21:22
Цитата
центр симметрии, если он существует, обязан быть также центром тяжести


Разве? А у физического маятника они могут и не совпадать...

Автор: S.A.P. 7.11.2005, 21:28
WERITAS ты путаешь физический центр тяжести и геометрический.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)