NTS的Algorithm命名空间包含了拓扑功能中常用的算法,其命名空间下包含以下类:
CentroidArea:求面的质心,注释中说算法已经扩展到处理带孔多边形和multi-polygon。
CentroidLine:求线/多线的质心。
CentroidPoint:求点/多点的质心。
CGAlgorithms:即Computational Geometric Algorithm,一些计算几何的基础算法,例如点在环内,点在线上,点线距离等等。
NonRobustCGAlgorithms:CGAlgorithms的非健壮性的实现版本,仅用于测试。
InteriorPointArea: ╲
InteriorPointLine:--- 注释让人看不懂,所以mark一下,以后懂了再回头看看。
InteriorPointPoint:╱
IPointInRing:接口,定义了方法点是否在环内,IsInside,返回布尔值。
MCPointInRing:实现了IPointInRing接口,算法用一个单调链和一个二叉查找树索引来提高性能。
SimplePointInRing:实现IPointInRing接口的简单算法。
SIRtreePointInRing:实现IPointInRing接口,算法用SIR树方法来实现。
LineIntersector:基类,判断线段是否相交,还可以返回交点。
NonRobustLineIntersector:LineIntersector的非健壮性的实现版本。
RobustLineIntersector:LineIntersector的健壮性的实现版本。
MinimumDiameter:计算Geometry的最小直径,最小直径的概念是包含所有点的最小圆的直径。
ConvexHull:计算一个几何体的凸壳,采用的是Graham扫描算法。
HCoordinate:即Homogeneous Coordinate,求两线的交点,返回的是齐次坐标点。(X,Y)→(X,Y,H)
PointLocator:计算点和geometry的拓扑关系。
RobustDeterminant:计算一个2×2的行列式的双精度值,方法的返回值是int型,不是很理解。原注释如下,Implements an algorithm to compute the sign of a 2x2 determinant for double precision values robustly.
SimplePointInAreaLocator:判断点是否在面内,仅仅是点不在面边界上的。
NotRepresentableException:继承系统异常类,用于抛出“点无法在笛卡尔平面上绘制出”异常。
浙公网安备 33010602011771号