Функции 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 смотрите здесь.
|