ObjectARX, AutoCAD. Среда программирования библиотеки C++



         

Использование базовых геометрических типов - часть 2


angle = v1.angleTo (v2, v3);

Следующие функции возвращают Булево значение (TRUE или FALSE) и могут использоваться внутренние условные операторы:

if (v1.isZeroLength ())

if (v1.isParallelTo (v2))

if (v1.isPerpendicularTo (v2))

Векторный класс содержит функции для обычных векторных операций:

len = v1.dotProduct (v2);

v3 = v1.crossProduct (v2);

Заданный по умолчанию конструктор для матрицы инициализирует матрицу к единичной матрице:

AcGeMatrix3d mat1, mat2, mat3;

Следующее вращает p3 90 градусов относительно линии, определенной p1 и v1:

mat1.setToRotation (kPi/2.0, v1, p1);

p3 = mat1 * p2;

Матрица может быть инвертирована, если это не сингулярно:

if (!mat2.isSingular())

mat2.invert();

* оператор определен для связывания матриц:

mat3 = mat1 * mat2;

Следующие испытания, содержит ли матрица равное масштабирование во всех трех координатах (то есть это не изменяет форму любого примитива, к которому это применяется):

if (mat.isUniScaledOrtho ())




Содержание  Назад  Вперед