Тема: Метод transformBy(...)

Подскажите, плис, какие все же конкретно данные передаются в метод CustomEntity::transformBy() в объекте класса AcGeMatrix3d, например, при повороте, перемещении подьзовательского объекта, наследованного от класса AcDbEntity. Читал хелп про AcGeMatrix3d, но кое-что все же не понятно. Разъясните ПОЖАЛУЙСТА. :(

Re: Метод transformBy(...)

Что именно непонятно? Это векторная алгебра и матричное исчисление.

Re: Метод transformBy(...)

Не совсем понятно какая информация передается в виде матрицы. По хелпу эта матрица состоит из двух частей: "А" и "Т". Если я правильно понял, то матрица "А" это векторы, а столбец  "Т" это координаты точки начала этих векторов? Если это так, тогда что представляют эти векторы по отношению к пользовательскому объекту?  :oops:

Re: Метод transformBy(...)

Ты понял неправильно. Эта матрица - "действие", т.е. она воздействует на объект, преобразовывая его. Например, столбец T - это перемещение объекта, а диагональ матрицы A - масштабирование объекта.
Поэтому они никакого отношения к самому объекту не имеют - только "действие".

Re: Метод transformBy(...)

Спасибо, Александр, Вы очень помогли. Теперь многое прояснилось :). Но кое-что все же хочу уточнить:
что представляют собой остальные элементы матрицы "А"? Всегда ли элементы класса "AcGeMatrix3d", передаваемые в метод "transformBy(...) " несут одинаковую смысловую нагрузку, например при повороте либо перемещении объекта? Т.е. всегда ли столбец "Т" является перемещением? Если это не так, то как узнать в каком случае это перемещение, а в каком что-то иное? Вопрос касается и остальных элементов матрицы.

(изменено: Александр Ривилис, 19 октября 2009г. 22:48:25)

Re: Метод transformBy(...)

Алексей Журавков пишет:

Всегда ли элементы класса "AcGeMatrix3d", передаваемые в метод "transformBy(...) " несут одинаковую смысловую нагрузку

Метод AcGeMatrix3d::translation тебе всегда даст перемещение, метод AcGeMatrix3d::scale (а еще лучше AcGeScale3d::extractScale) даст тебе масштабирование, ну а операции поворота тебе придется самостоятельно вычислить.
P.S.: Вот эта ссылка надеюсь поможет тебе разобраться в тонкостях преобразований: http://compgraphics.info/3D/3d_affine_t … ations.php

Re: Метод transformBy(...)

Спасибо, Александр, Вы мне очень помогли! :)  :)  :)

Re: Метод transformBy(...)

Пожалуйста. Для благодарностей есть даже специальная ветка форума smile