Был удивлён (мягко скажем) "неточностью" вычисления средней точки для сплайна.
Создал чертёж с тремя сплайнами. Сплайны отличаются расположением и количеством управляемых точек (см. рисунок и чертёж во вложении):
После этого определяю средние точки (зелёные кружки). Гипотетически все сплайны должны иметь средние точки строго расположенные по вертикали,
но это почему-то не так. Кстати, сам AutoCAD (согласно привязке) определяет их корректно (жёлтые кружки).
Метод определения точек классический:
AcDbSpline* pSpline = AcDbSpline::cast(TmpEnt);
if (pSpline != NULL)
{
double StartParam;
double EndParam;
pSpline->getStartParam(StartParam);
pSpline->getEndParam(EndParam);
AcGePoint3d MidPoint;
pSpline->getPointAtParam((StartParam + EndParam ) * 0.5, MidPoint);
}
Что не так?
P.S.
AutoCAD 2016