#pragma once #include #include "point.h" using namespace std; class TopologicalAnalysis { public: TopologicalAnalysis(void); ~TopologicalAnalysis(void); bool isPointInLine(double* point, double* startPoint, double* endPoint,float tolerance=0.001); // 判断点是否在线上 int isPointInPolyLine(double* point, vector& lineX,vector& lineY,float tolerance=0.001); bool isPointInLine(CPoint1 point, CPoint1 startPoint, CPoint1 endPoint); //根据两点求出垂线过第三点的直线的交点 bool GetPointToLineVerticalCross(double* linePt1,double* linePt2,double* pt,double* crossPt); //判断点是否在多边形内,交点法 bool isPointInPolygon(CPoint1 point, vector polygon); //判断两条直线段是否相交 bool isLineIntersect(CPoint1 line1Start, CPoint1 line1End, CPoint1 line2Start, CPoint1 line2End); // 计算两点的欧式距离, 未实现 double getDistance(CPoint1 point1, CPoint1 point2); //计算一组CPoint1的最大X double getMaxX(vector points); };