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

         

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


Следующие примеры показывают некоторых из обычно используемых функций и операторов в точке, векторе, и матричных классах. Эти примеры используют трехмерные классы, но большинство их также обращается к 2-ым классам также.

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

Точки и векторы могут также быть созданы,  определяя их координаты следующим образом:

AcGePoint3d p1 (2.0,5.0, -7.5), p2, p3 (1.0,2.0,3.0);

AcGeVector3d v1 (3.0,4.0,5.0), v2 (0.0,1.0, -1.0), v3;

Точка и векторные классы обеспечивают +, + =, -, и - = операторы. Эти операторы позволяют точки и векторы использоваться аналогичным способом, поскольку встроенные типы, типа удваиваются и целые числа. Следующее - примеры добавления и вычитания точек и векторов:

p2 = p1 + v1;          // Set p2 to sum of p1 and v1.

p1 += v1;                // Add v1 to p1.

p3 -= v1;                 // Subtract v1 from p3.

v3 = v1 + v2;          // Set v3 to sum of v1 and v2.

v1 + = v2;               // Прибавляют v2 к v1.

v3 = v1 - v2;           // Набор v3 к различию v1 и v2.

Не имеется никакого + оператор для добавления двух точек; однако, точка может быть преобразована к вектору, который может тогда быть добавлен к другой точке:

p1 + = p2.asVector ();

Следующее - примеры того, как получить негатив вектора:

v2 = -v1; // Набор v2 к негативу v1.

v1.negate (); // Это эквивалентен v1 = -v1.

Следующее - примеры различных способов масштабировать вектор:

v1 * = 2.0;               // Удваивает длину v1.

v3 = v1 / 2.0;          // Набор v3 к половине длины v1.

v1.normalize ();     // Делают v1 единичным вектором.

Точка и векторные классы содержат множество функций запроса для вычислительных расстояний и длин:

double len = v2.length();     // Длина v2.

len = p1.distanceTo (p2);    // Расстояние от p1 до p2.

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




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