You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1012 B
C++
33 lines
1012 B
C++
#pragma once
|
|
#include <vector>
|
|
#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<double>& lineX,vector<double>& 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<CPoint1> polygon);
|
|
|
|
//判断两条直线段是否相交
|
|
bool isLineIntersect(CPoint1 line1Start, CPoint1 line1End, CPoint1 line2Start, CPoint1 line2End);
|
|
|
|
// 计算两点的欧式距离, 未实现
|
|
double getDistance(CPoint1 point1, CPoint1 point2);
|
|
|
|
//计算一组CPoint1的最大X
|
|
double getMaxX(vector<CPoint1> points);
|
|
};
|