ADN Club > VBA
Получить геометрический центр объектов находящихся в SelectionSets
Vladimir:
Добрый день!
Есть задача....
Получить геометрический центр объектов находящихся в SelectionSets , чтобы потом отзеркалить их через этот центр.
На ум приходит самый простой и трудоемкий способ....
Перебор поэлементно набора SelectionSets, определение типа его элементов (линия, окружность, сплайн и т.д.) получение координат крайних точек элемента, проверка полученных значений по условию (<>) и если условие выполнено запись нового значения в переменную.
Вопрос...
А существует ли более элегантный способ выполнения поставленной задачи?
Примеры, ссылки, советы приветствуются.
Александр Ривилис:
--- Цитата: Vladimir от 09-06-2015, 10:19:13 ---Получить геометрический центр объектов
--- Конец цитаты ---
Осталось понять что такое геометрический центр. Его можно считать как центр центров объектов с учетом или без учета их площади. А можно превратить кривые в Region'ы, объединить их и получить Centroid суммарного Region.
Vladimir:
Да, с учетом площади элементов .
Объединять не желательно и или не возможно (в прямоугольнике есть отверстия, размеры)
Александр Ривилис:
Ну тогда для каждого из примитивов в SelectionSet используя метод GetBoundingBox получаешь угловые точки окаймляющего прямоугольника. Получаешь площадь (S) и центр (x, y, z) этого прямоугольника.
Псевдокод:
--- Код: ---Xcentr = ((x1*S1)+(x2*S2) + ... +(xn*Sn)) / (S1+S2+...+Sn)
Ycentr = ((y1*S1)+(y2*S2) + ... +(yn*Sn)) / (S1+S2+...+Sn)
Zcentr = ((z1*S1)+(z2*S2) + ... +(zn*Sn)) / (S1+S2+...+Sn)
--- Конец кода ---
Vladimir:
Спасибо.
Навигация
Перейти к полной версии