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.

60 lines
1.8 KiB
C

1 month ago
//////////////////////////////////////////////////////////////////////////////
//<2F>ļ<EFBFBD>: CWellTrack<63><EFBFBD><E0A3AC><EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
// <09><><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD>
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2012-07-03
//
//
/////////////////////////////////////////////////////////////////////////////
#pragma once
#include "Point2D.h"
class AFX_EXT_CLASS CWellTrack
{
public:
CWellTrack();
virtual ~CWellTrack(void);
class AFX_EXT_CLASS CWellTrackPoint
{
public:
CWellTrackPoint(void) { InitPoint(); }
dfPoint point; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double xh; //б<><D0B1>
double vh; //<2F><><EFBFBD><EFBFBD>
double bevel; //<2F><>б<EFBFBD><D0B1>
double azimuth; //<2F><>λ<EFBFBD><CEBB>
double dx, dy; //<2F><>ƫ<EFBFBD>ƣ<EFBFBD><C6A3><EFBFBD>ƫ<EFBFBD><C6AB>
double dh; //<2F>öε<C3B6>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void InitPoint(void);
};
enum ETrackType //Ϊ<><CEAA><EFBFBD><EFBFBD><EBB5BC>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ
{
typeWellOffset = 5, //б<><D0B1><EFBFBD>һƫ<D2BB>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA1A2>ƫ<EFBFBD>ơ<EFBFBD><C6A1><EFBFBD>ƫ<EFBFBD>ƣ<EFBFBD>
typeWellAvgAngle1 = 6, //б<><D0B1><EFBFBD><EFBFBD><ECBCA3>ƽ<EFBFBD><C6BD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EAA1A2><EFBFBD><EEA1A2>б<EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD>λ<EFBFBD>ǣ<EFBFBD>
typeWellAvgAngle2 = 7, //б<><D0B1><EFBFBD><EFBFBD><ECBCA3>ƽ<EFBFBD><C6BD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EAA1A2><EFBFBD><EFBFBD><EEA1A2>б<EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD>λ<EFBFBD>ǣ<EFBFBD>
typeWellMinCurvature = 8, //б<><D0B1><EFBFBD><EFBFBD><ECBCA3><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD>ʷ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EAA1A2><EFBFBD><EEA1A2>б<EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD>λ<EFBFBD>ǣ<EFBFBD>
};
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ZֵΪ<D6B5><CEAA><EFBFBD>LֵΪб<CEAA><D0B1>
int CreateTrack(CList<CWellTrackPoint, CWellTrackPoint>& arrPoint, CPointList &out_dp, ETrackType nMode);
protected:
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>x,y,(<28><><EFBFBD><EFBFBD>,б<><D0B1>bevel,<2C><>λ<EFBFBD><CEBB>azimuth----<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void GetCoordinate(CWellTrackPoint& wp);
double ToVerticalDepth(double h, double bevel); //б<>б<EEA3AC><D0B1>
//<2F><>С<EFBFBD><D0A1><EFBFBD>ʷ<EFBFBD>minimum curvature method
int MinimumCurvatureMethod(CList<CWellTrackPoint, CWellTrackPoint>& arrPoint, CPointList &out_dp);
//ƽ<><C6BD><EFBFBD>Ƿ<EFBFBD>
int AverageAngleMethod(CList<CWellTrackPoint, CWellTrackPoint>& arrPoint, CPointList &out_dp, ETrackType nMode);
};
typedef CList<CWellTrack::CWellTrackPoint, CWellTrack::CWellTrackPoint> CWellTrackPointList;