Расстояния на плоскости

Во всех функциях этого раздела вычисленное расстояние будет отрицательным, если точка находится внутри фигуры, и положительным, если точка находится вне фигуры.

• Минимальное расстояние между точками одного множества:

double closestPoints ( CArrRef<Vector2d> point, Set2<nat> & pp );
Параметр pp содержит индексы ближайших точек.

• Расстояние от точки до границы окружности:

double getDistance ( const Circle2d & circle, const Vector2d & point );

• Расстояние от точки до границы эллипса:

double getDistanceElp ( double a, double b, const Vector2d & p, Vector2d & r );

double getDistanceElp ( double a, double b, const Vector2d & p );
Здесь a и b - это параметры эллипса заданного в виде ( x / a )2 + ( y / b )2 = 1,
p - заданная точка,
r - ближайшая точка на границе эллипса.

• Расстояние от точки до границы многоугольника:

bool distance ( CArrRef<Vector2d> vert, const Vector2d & point,
                double & dist, unsigned int & index, bool & isBone );
Обход вершин многоугольника задан против часовой стрелки. Здесь vert - ссылка на массив вершин, point - заданная точка, dist - вычисленное расстояние, index - номер ближайшей вершины или ребра, isBone - индикатор того, что ближе - точка на ребре или вершина.
Если к-во вершин равно нулю, то функция возвращает значение false и переменные dist, index и isBone не меняются.

Описание класса Vector2d находится здесь.
Описание шаблона классов Set2 находится здесь.
Описание шаблона CArrRef смотрите в разделе Массивы.

Исходники алгоритмов находятся в func2d.cpp

Наверх