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.

74 lines
2.3 KiB
C

1 month ago
#pragma once
//#include <vector>
#include "clipper2\clipper.engine.h"
#include "clipper2\clipper.core.h"
#include "clipper2\clipper.h"
//#include "clipper2\clipper.rectclip.h"
#include "clipper2\clipper.rectclip.h"
//#include "clipper2\RectClipLines.h"
//#include "clipper2\clipper.export.h"
#include "DrawOperator\FormatReader\GeoMapDataType.h"
#include "IntersectionUtil.h"
//#include "clipper2\clipper.engine.h"
//#include "clipper2\clipper.offset.h"
//#include "clipper2\clipper.minkowski.h"
//#include "DPoint.h"
using namespace std;
using namespace Clipper2Lib;
#define M_PI 3.14159265358979323846
class AFX_EXT_CLASS IDWCalculation
{
public:
IDWCalculation();
~IDWCalculation();
void SetSortedData(vector<DPoint3>* pData);
void SetData(vector<double>& vecX, vector<double>& vecY, vector<double>& vecZ);
void SetData(vector<array<double, 3>>& data);
double GetValue(double x, double y);
void SetArea(double area);
double TestR(double x, double y);
void SetSearchR(double r);
void SetFaultageHelp(const CIntersectionUtil* intersectHelp);
bool IsIntersects(const Paths64* subjects, Point64& pt1, Point64& pt2);
static bool PointSort(DPoint3& pt1, DPoint3& pt2);
private:
int FindPoints(double centerX, double centerY, double radius, vector<DPoint3>& ptsInrange);
public:
/************************************************************************/
/* Ĭ<><C4AC>ֵΪ2<CEAA><32><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>0.5<EFBFBD><EFBFBD>3<EFBFBD><EFBFBD>ֵ<EFBFBD>ɻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/* ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ɽ<EFBFBD>һ<EFBFBD><D2BB>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A1A3><EFBFBD>ˣ<EFBFBD><CBA3>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>𽥽ӽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>
ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD>Ծ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>Ӷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ<EFBFBD>ع<EFBFBD>ʽ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪֵΪ30<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD>á<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>μ<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
/************************************************************************/
double m_factor = 2.5;
//double m_searchDistance = 0;
private:
vector<double>* m_pX;
vector<double>* m_pY;
vector<double>* m_pZ;
vector<DPoint3>* m_pPts;
BOOL m_bCreated = FALSE;
double m_Area;
int m_K;
double m_R; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBBEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̨ɨ<CCA8><C9A8>
int m_SearchTimes;
int m_SearchResult;
double m_RInflexion;
double m_SearchTolerant;
CIntersectionUtil* m_IntersectHelp;
};