////////////////////////////////////////////////////////////////////////////// //文件: CWellTrack类,井轨迹计算类 //主要功能: // 根据指定的参数计算平面井轨迹坐标 // //程序编写: 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; //井口坐标 double xh; //斜深 double vh; //垂深 double bevel; //井斜角 double azimuth; //方位角 double dx, dy; //横偏移,纵偏移 double dh; //该段的斜深|垂深间隔 void InitPoint(void); }; enum ETrackType //为了与导入时的类型相同 { typeWellOffset = 5, //斜井轨迹一偏移法(需要:井口坐标、横偏移、纵偏移) typeWellAvgAngle1 = 6, //斜井轨迹二平均角法(需要:井口坐标、斜深、井斜角、方位角) typeWellAvgAngle2 = 7, //斜井轨迹三平均角法(需要:井口坐标、垂深、井斜角、方位角) typeWellMinCurvature = 8, //斜井轨迹四最小曲率法一(需要:井口坐标、斜深、井斜角、方位角) }; //返回值:当为四列数据时,Z值为垂深,L值为斜深 int CreateTrack(CList& arrPoint, CPointList &out_dp, ETrackType nMode); protected: //根据原点坐标x,y,(垂深,斜角bevel,方位角azimuth----三个参数相对于原点坐标)计算坐标 void GetCoordinate(CWellTrackPoint& wp); double ToVerticalDepth(double h, double bevel); //斜深,斜角 //最小曲率法minimum curvature method int MinimumCurvatureMethod(CList& arrPoint, CPointList &out_dp); //平均角法 int AverageAngleMethod(CList& arrPoint, CPointList &out_dp, ETrackType nMode); }; typedef CList CWellTrackPointList;