Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2010, 15:07   #1
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Найти центр сложной фигуры

1. Как можно найти центр разных фигур абсолютно любой формы? (клюшка, S-образная фигура, вобщем у любой). Применимо ли понятие центра к таким кривым фигурам? Хотя "центр вращения" есть у любой, типа как балансировка, вокруг такого центра вращение без вибрации будет. Как его найти?

2. Умный поиск центра. К примеру фигура в виде двух окружностей соединенных между собой узкой полосой, нужно поставить метку на фигуру, т.к. полоса тонкая то человек бы поставил метку где нибудь на "теле" фигуры, где больше места, как научить программу это делать?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 27.02.2010, 15:24   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

1. Если фигура не имеет округлостей, то разбивай на треугольники. Точка пересечения биссектрис является центром тяжести треугольника. Вычисляешь массу каждого треугольника (если тело однородно, то m/M=s/S, где m и M массы, а s и S площади каждого треугольника и всей фигуры). Затем считаешь каждый центр масс материальной точкой и находишь для этих материальных точек центр тяжести.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 27.02.2010 в 15:35.
ROD вне форума Ответить с цитированием
Старый 27.02.2010, 15:28   #3
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

ROD, не подходит, фигуры произвольной формы.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 27.02.2010, 15:31   #4
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Если фигура не задана уравнением, то только разбиение на множество материальных точек (по крайней мере тех частей фигуры, что нельзя представить в виде треугольников).В википедии есть формула для расчета центра масс такой вот системы материальных точек.

Если есть уравнение, то, наверное, можно как-то еще, хотя можно так же построить и, методом разбиения на материальные точки, посчитать.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 27.02.2010 в 15:34.
ROD вне форума Ответить с цитированием
Старый 27.02.2010, 15:48   #5
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Если имеется в виду геометрический центр, то можно попробовать следующий метод:
Например у нас изображение клюшки.
1) Вписывается в прямоугольник минимальной формы.
2) Дальше ставим "указатель" в центр прямоугольника.
3) После идем в цикле во всем "точкам" (пикселям) изображения. И если точка внутри фигуры - то смещаем "указатель" на одну клетку (меньше пикселя) в сторону текущей точки.
4) Проходим по всем точкам и в итоге (по идее) получаем, что "указатель" находится в центре фигуры (геометрическом, который может быть ВНЕ фигуры)

Центр вращения - не может быть предметом поиска, поскольку такого понятие не существует. Есть ОСЬ вращения:
, но она применима только к трехмерным фигурам.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 27.02.2010, 16:12   #6
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
но она применима только к трехмерным фигурам.
Почему же, а если смотреть в проекции сверху?

Цитата:
формула для расчета центра масс
Да, это подойдет. Ответ на первый вопрос есть. Спасибо.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 27.02.2010 в 16:14.
mutabor вне форума Ответить с цитированием
Старый 27.02.2010, 16:13   #7
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
Почему же, а если смотреть в проекции сверху?
Тогда мы подразумеваем, что ось находится перпендикулярно рассматриваемой плоскости. Почему нельзя говорить "центр вращения"? Потому, что представьте себе абстрактную точку - как вокруг неё крутится тело? В каком направлении? Под каким углом? А с осью все понятно, единственное - нужно указать направление -по или протв часовой. Это придумал не я, так принято.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 27.02.2010, 16:25   #8
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Потому, что представьте себе абстрактную точку - как вокруг неё крутится тело? В каком направлении? Под каким углом? А с осью все понятно, единственное - нужно указать направление -по или протв часовой. Это придумал не я, так принято.
Понятие ось не применимо, например, к двухмерному пространству, там это именно точка.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 27.02.2010, 16:31   #9
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Это придумал не я, так принято.
Ничего не имею против.

Вопрос 2 еще интересует. Вот иллюстрация к нему
Изображения
Тип файла: png fig.png (4.1 Кб, 702 просмотров)
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 27.02.2010, 16:55   #10
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

1) Центр масс- среднеарифметическое координат всех точек объекта.
2) Разбей объект объекты(где то я алгоритм писал, а вообще поищи в сети), которые больше минимальных, а далее опять ищи центр масс =) А вообще не очень понятно ТЗ.

Ой, сразу не врублися в твой метод =)

Последний раз редактировалось Levsha100; 27.02.2010 в 17:20.
Levsha100 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение достаточно сложной задачи... El_Bint0 Помощь студентам 6 11.02.2015 09:15
Найти центр ящика Ulex Gamedev - cоздание игр: Unity, OpenGL, DirectX 2 22.01.2010 00:08
Помогите со Сложной проблемкой vlad1m1r19 Microsoft Office Excel 0 18.08.2009 19:20
Реализация сложной диаграммы. BORINSHTEIN Microsoft Office Excel 2 12.12.2008 11:52
Помогите с созданием сложной таблицы GrayBrother Microsoft Office Excel 4 25.08.2008 10:16