Характеристики
Кривые имеют следующие характеристики:
§
Ориентация
§ Периодичность
§ Замкнутое выражение
§ Planarity
§ Длина
Ориентация кривой определена направлением, в котором его параметр увеличивается. Вы можете использовать AcGeCurve2d:: reverseParam () или AcGeCurve3d:: reverseParam () функция, чтобы полностью изменить ориентацию кривой.
Некоторые кривые периодические, что означает, что они повторяют себя после некоторого интервала. Например, период круга - 2p. Используйте эти функции, чтобы определить,является ли кривая периодической:
Adesk::Boolean
AcGeCurve2d::isPeriodic(double& period) const;
Adesk::Boolean
AcGeCurve3d::isPeriodic(double& period) const;
Замкнутая кривая имеет точки начала и оконечные точки, которые являются тем же самый. Кривые могут быть или закрыты или открытый. Используйте эти функции, чтобы определить, закрыта ли кривая:
Adesk::Boolean
AcGeCurve2d::isClosed(
const AcGeTol&=AcGeContext::gTol) const;
Adesk::Boolean
AcGeCurve3d::isClosed(
const AcGeTol&=
AcGeContext::gTol) const;
Кривая 3D может быть плоска (значение, что все его точки постоянно находятся в том же самом плане) или неплоский. Используйте эту функцию, чтобы определить,является ли кривая 3D плоской:
Adesk::Boolean
AcGeCurve3d::isPlanar(
AcGePlane&,
const AcGeTol&=AcGeContext::gTol) const;
Учитывая два значения параметра, Вы можете получить длину кривой между этими двумя значениями, использующими следующие функции:
double
AcGeCurve2d::length(
double fromParam, double toParam,
double=AcGeContext::gTol.equalPoint()) const;
double
AcGeCurve3d::length(
double fromParam, double toParam,
double=AcGeContext::gTol.equalPoint()) const;
Вы можете использовать AcGeCurve2d:: evalPoint () и AcGeCurve3d:: evalPoint () функции, чтобы получить точку пространства модели, которая соответствует данному параметрическому значению. Если ваше приложение исполняет оценку часто, вы вероятно найдете AcGePointOnCurve3d, и AcGePointOnCurve2d классифицирует более эффективный (см. “ Специальные Классы Оценки ” на странице 738). Функции кривой для оценки точек следующие:
AcGePoint2d
AcGeCurve2d::evalPoint(double param) const;
AcGePoint2d
AcGeCurve2d::evalPoint(
double param, int numDeriv,
AcGeVector2dArray& derivArray) const;
AcGePoint3d
AcGeCurve3d::evalPoint(double param) const;
AcGePoint3d
AcGeCurve3d::evalPoint(
double param, int numDeriv,
AcGeVector3dArray& derivArray) const;