Geoplanarnet
Простая и Small.net библиотека для вычислительной плоской геометрии.
Основной функцией библиотеки Geoplanarnet является манипулирование основными геометрическими примитивами, такими как точки, линии, треугольники и прямоугольники в 2D -пространстве. Реализовано как простые (например, поиск точки пересечения двух линий), так и сложных (например, проверки того, что точка в секторе кругового). Все методы имеют перегрузки для работы с графическими классами Standart .net: Point, Pointf, Rect, Rectf.
Поскольку читаемость и простота кода были ключевыми целями, скорость и надежность не были сделаны высшим акцентом. Глобальное свойство толерантности используется для проверки близости, а не для точных надежных алгоритмов.
Точка:
- Distanceto - Получить расстояние между двумя точками;
- Distancetoline - получить кратчайшее расстояние до линии;
- Distancetosegment - получить кратчайшее расстояние от точки к сегменту;
- Distancetorect - получить кратчайшее расстояние от точки до оси, ориентированной и заданного с помощью произвольных точек прямоугольника;
- Distancetocircle - получить кратчайшее расстояние от точки до круга;
- Distancetotriangle - получить краткое расстояние от точки до треугольника;
- DistancetoSurface - получить кратчайшее расстояние от точки к поверхности;
- Принадлежности - проверьте, принадлежит ли точка сегменту;
- Принадлежности - Проверьте, принадлежит ли точка линии;
- Принадлежности - Проверьте, принадлежит ли точку кругу;
- Принадлежности Stocirclesector - проверьте, принадлежит ли точка к конкретному кружковому сектору;
- Принадлежности - Проверьте, принадлежит ли точка к оси -параллельному эллипсу;
- Принадлежности Stoellipsesector - Проверьте, принадлежит ли точка к конкретному сектору эллипсов оси;
- Принадлежности - проверьте, принадлежит ли точка к треугольнику;
- Принадлежности - проверьте, принадлежит ли точка к прямоугольнику, ориентированному на ось;
- Принадлежности - Проверьте, принадлежит ли точка к поверхности;
- GetCloSestPointOnsement - найдите точку на сегменте, ближайшем к данному;
- GetCloSestPointOnCircle - получить ближайшую точку на круге к данной точке;
- GetClosestPointOnellipse - получить ближайшую точку на оси -параллельном эллипсе к данной точке;
- GetClosestPointOntriangle - получить ближайшую точку на треугольнике к данной точке;
- GetCloSestPointOnRect - получить ближайшую точку на оси, ориентированную и заданную произвольными точками прямоугольника к данной точке;
- GetRelativeLocationsImple, getRelativeLocation - получить местоположение точки по сравнению с сегментом;
- GetRelatiVelocationTriangle - Получите место местоположения по сравнению с треугольником;
- GetRelativeLocationCircle - Получите местоположение точки относительно круга;
- GetRelatiVelocationellipse - Получите местоположение точки по сравнению с оси -параллельным эллипсом;
- GetRelatiVelocationRect - Получите местоположение точки относительно ориентированной на оси и заданного с помощью произвольных точек прямоугольника;
- GetProcectiontoline - Получить проекцию от точки до линии;
- Hasprocectiontosegment - проверьте, имеет ли точка проекция на сегмент;
- GetProcectionTosegment - Получить точку проекции в сегмент;
- Равно - проверить, равны ли две точки;
- Iscollinear - проверьте, являются ли три точки коллинеарными;
- Поверните - поворачивать точку вокруг центральной точки;
- GetVectorProduct - рассчитайте векторный продукт между точкой и сегментом;
- GetAngle - Получите угол оси -градуи между двумя точками;
- Mindistancetocurveline - найдите минимальное расстояние от кривой до точки.
Сегмент
- Длина - Получить длину сегмента;
- Distancetopoint - получить кратчайшее расстояние от точки к сегменту;
- Distancetocircle - получить кратчайшее расстояние от сегмента до круга;
- HasIntersection - проверьте, имеют ли два сегмента пересечение;
- FindIntersection - найти точку пересечения между двумя сегментами;
- HassurfaceIntersection - проверьте, имеет ли линия кривой и сегмент пересечение;
- FindSurfaceIntersection - найти точку пересечения между сегментом и поверхностью;
- Hasrectintersection - проверьте, имеет ли прямоугольник и сегмент пересечение;
- FindRectintersection - найдите точку пересечения между прямоугольником и поверхностью;
- HastriangleIntersection - проверьте, имеет ли треугольник и сегмент пересечение;
- FindTriangleIntersection - найти точку пересечения между треугольником и поверхностью;
- Принадлежность - Проверьте, принадлежит ли сегмент линии;
- Getxangleradians - Получите угол наклона сегмента по сравнению с осью X;
- Getangleradians - Получите угол между двумя сегментами. Получить угол между двумя сегментами с общей точкой;
- IsbetNewnagles - проверьте, находится ли сегмент между углом начала и углом конечного угла;
- GetPointawayFromStart - Уберите точку от начальной точки сегмента на указанном расстоянии;
- GetPointawayFromend - Уберите точку от конечной точки сегмента на указанном расстоянии;
- Разделить - разделить сегмент на мелкие части на длину сегментов;
- LinearInterpolation - линейная интерполяция для точки на сегменте;
- LinearInterPolationBystep - линейная интерполяция с указанным шагом;
- ISparallel - проверьте, параллельны ли два сегмента;
- GetRelatiVelocationTriangle - Получить местоположение сегмента по сравнению с треугольником;
- CreateFromline - вырезать линию в сегмент по границам x;
- HaspointProjection - проверьте, имеет ли точка проекция на сегмент;
- GetPointProjection - Получить точку проекции в сегмент;
- Содержит - проверьте, содержит ли сегмент точку.
Linegeo
- Distancetocircle - получить краткое расстояние от линии до круга;
- Distancetopoint - получить кратчайшее расстояние до точки;
- HasIntersection - проверьте, имеют ли две линии пересечение;
- FindIntersection - найти точку пересечения между двумя линиями;
- Hascircleintersection - проверьте, имеет ли линия и кружок пересечение;
- FindCircleintersection - найти пересечение между линией и кругом;
- ISparallel - проверьте, параллельны ли две строки;
- Содержит - проверьте, содержит ли линия точку;
- Содержит сосудим - проверьте, содержит ли строка сегмент;
- Findslopekoef - Получить коэффициенты линейной линейной функции k и b;
- Cutbyxbounds - вырезать линию до сегмента по границам x;
- GetRelatiVelocationCircle - Получить местоположение линии относительно круга;
- GetPointProjection - Получить проекцию от точки до линии.
Curvelinegeo
- Длина - Получить длину кривой;
- Mindistancetopoint - найдите минимальное расстояние от кривой до точки;
- Разделить - разделить линию кривой на мелкие части на длину сегментов;
- HasIntersection - проверьте, имеет ли линия кривой и сегмент пересечение;
- FinderTersection - Найдите точку пересечения между сегментом и поверхностью.
Circlegeo
- Getarea - Получите область круга;
- GetEdgePoint - Получите точку на краю круга под указанным углом;
- Getaabb - Получите ограничивающий прямолинейный круг круга;
- Isorthogonal - проверьте, являются ли два круга ортогональными;
- Hasoverlapping - проверьте, перекрываются ли два круга;
- GetRelatiVelocationline - Получите местоположение линии относительно круга;
- Distancetopoint - получить кратчайшее расстояние от точки до круга;
- Distancetosegment - получить кратчайшее расстояние от сегмента до круга;
- Distancetoline - получить самое короткое расстояние от линии до круга;
- Distancetocircle - получить краткое расстояние от круга до круга;
- Distancetotriangle - получить краткое расстояние от круга до треугольника;
- HaslineIntersection - проверьте, имеют ли линия и кружок пересечение;
- FindlineIntersection - найти точку пересечения между линией и кругом;
- Hasrectintersection - проверьте, имеет ли кружок пересечение с прямоугольником;
- Содержит - проверьте, содержит ли сектор круга/круга.
Эллипсегео
- Getarea - Получите область эллипса;
- GetEccencticity - получить эксцентриситет эллипса;
- GetPerimeter - Получите периметр эллипса;
- Содержит - проверьте, содержит ли в секторе оси -параллельного эллипса/эллипса эту точку.
Триугольник
- Площадь - Получите треугольную область;
- Периметр - Получите треугольный периметр;
- Gettriangletype - получить тип треугольника;
- Getangles - Получите треугольные углы;
- ИСТРАНУТРЕНИЕ - Проверьте, равно ли один угол равен 90 градусов;
- Isobtuse - проверьте, превышает ли один угол более 90 градусов;
- Isacute - проверьте, составляют ли все углы менее 90 градусов;
- Getaabb - Получите aabb rect от треугольника;
- Вращать - поворачивать треугольник вокруг точки/центра;
- GetCenter - Получите средний центр треугольника;
- Distancetopoint - получить самое короткое расстояние от точки до треугольника;
- Distancetocircle - получить краткое расстояние от круга до треугольника;
- HasseSmentIntersection - проверьте, имеет ли пересечение между сегментом и треугольником;
- FindsegmentIntersection - найти точку пересечения между сегментом и треугольником;
- GetRelatiVelocationSegment - Получить местоположение сегмента по сравнению с треугольником;
- Содержит - проверьте, содержит ли треугольник точку.
Прямо
- Getarea - Получите область прямоугольника;
- GetCenter - Получите центральную точку прямоугольника;
- GetDimensions - Получить ширину/высоту прямоугольника;
- GetPoints - Получить точки прямоугольника на основе диагональных 0-2 баллов;
- Getaabb - получить прямоугольник AABB;
- Hascircleintersection - проверьте, имеет ли кружок пересечение с ориентированной на ось и заданного прямоугольником в произвольных точках;
- HasseSementIntersection - проверьте, имеет ли сегмент пересечение с ориентированной на ось и заданного прямоугольником в произвольных точках;
- FindsegmentIntersection - Найти пересечение между сегментом и ориентированной на ось и заданного с помощью произвольных точек прямоугольника;
- CreateFromSegment - получить прямоугольник с одной стороной, равной сегменте;
- DistancetoPoint - получить кратчайшее расстояние от точки до оси, ориентированной и заданного произвольным прямоугольником;
- Содержит - проверьте, содержит ли ориентированная на ось и заданный прямоугольник.
Surfaceo
- Getarea - Получите площадь поверхности;
- GetMinpoint - Получите минимальную точку поверхности;
- GetMaxPoint - Получите максимальную точку поверхности;
- GetCenterPoint - Получите центральную точку поверхности;
- Getaabb - Получите прямоугольник, покрывающий всю поверхность;
- Distancetopoint - получить кратчайшее расстояние от поверхности до точки;
- Содержит - проверьте, содержит ли поверхность точку.
Geoplanarnet
- Эпсилон - толерантность, используемая для операций сравнения (по умолчанию 1E -3);
- О equals - проверьте, равны ли два числа с плавающей точкой;
- Aboutzero - Проверьте, будет ли число с плавающей точкой равным нулю.