Функции circlePPP строят окружность по трём точкам. При этом находится центр o и квадрат радиуса r2 или окружность в виде типа Circle2d: bool circlePPP ( const Vector2d & a, const Vector2d & b, const Vector2d & c,
Vector2d & o, double & r2 );
Def<Circle2d> circlePPP ( const Vector2d & a, const Vector2d & b, const Vector2d & c );
Программа circlePPL строит окружности по двум точкам и одной прямой. К-во найденных окружностей может быть от 0 до 2. При этом находятся центры o и радиусы r: unsigned int circlePPL ( const Vector2d & point1, const Vector2d & point2, const Line2d & line,
Vector2d o[2], double r[2] );
Программа circlePLL строит окружности по одной точке и двум прямым. К-во найденных окружностей может быть от 0 до 2. При этом находятся центры o и радиусы r: unsigned int circlePLL ( const Vector2d & point, const Line2d & line1, const Line2d & Line2d,
Vector2d o[2], double r[2] );
Функции circleLLL строят окружность по трём прямым. При этом находится центр o и радиус r или окружность в виде типа Circle2d: bool circleLLL ( const Line2d & line0, const Line2d & line1, const Line2d & Line2d,
Vector2d & o, double & r );
Def<Circle2d> circleLLL ( const Line2d & line0, const Line2d & line1, const Line2d & line2 );
Во всех программах, где есть прямые, окружности строятся в отрицательных полуплоскостях. Если это сделать невозможно, то окружность не строится. Описание шаблона классов Def смотрите здесь.
|