⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmstools.h

📁 vc 和mapobjects地理信息系统组件开发 很有启发意义和参考价值
💻 H
字号:
#ifndef __FMSTOOLS_H__
#define __FMSTOOLS_H__


typedef struct {
	DWORD dwFlag;			//
	char Location[33];
	int Date;
	int Time;
	float Lat;
	float Lon;
	float Mag;
	float Depth;
	float FP1D, FP1A, FP2D, FP2A;
	COLORREF PColor;
	COLORREF TColor;
	int Radius;
	int xShift;
	int yShift;
	float PAXD, PAXA;
	int PLength;
	float TAXD, TAXA;
	int TLength;
} RECORD_FMS_MIF;			//存储震源机制解的MIF文件属性


class AFX_EXT_CLASS CFmsTools : public CObject
{
public:
	CFmsTools();
	~CFmsTools();

	//绘制震源机制断层面解图
	void DrawFmsCircle(CDC *pDC, int xc, int yc, RECORD_FMS_MIF recFms);
	//绘制震源机制解P轴或T轴
	void DrawFmsAxis(CDC *pDC, int xc, int yc, RECORD_FMS_MIF recFms, BOOL bAxisP=TRUE);

private:
	typedef struct {
		double x;
		double y;	
	} LFFPOINT;

	LFFPOINT m_pCircle[360];			//圆周上各点的坐标
	LFFPOINT m_pPlane[362];				//节面上各点的坐标(前181点为第1个有效节面)
	int m_iPlanes;						//有效节面数(水平节面与大圆重复,无效)
	BOOL m_bThreePolygon;
	//LFFPOINT m_pPlane2[181];			//节面2上各点的坐标
	int m_piCrossPointNo[6];			//两节面与圆的交点在圆上坐标号、两节面交点在节面上的坐标号
	//int m_iPlaneOnCircle11,m_iPlaneOnCircle12;	//节面1与圆的交点在圆上坐标号
	//int m_iPlaneOnCircle21,m_iPlaneOnCircle22;	//节面2与圆的交点在圆上坐标号
	//int m_iCrossOnPlane1,m_iCrossOnPlane2;		//交点在节面1、节面2上的坐标号
	LFFPOINT m_pPolygon[1088];		//多边形节点
	POINT m_pPtPolygon[540];		//
	int m_iPolygons;				//多边形的数目
	BOOL m_bOddBegin;				//P轴是否对应奇数多边形
	POINT m_pPtBegin[5];			//记录多边形起点坐标和点数

	//计算圆周点坐标
	void GetCircleNodes(double lfRadius);
	//计算节面各点坐标
	void plotpl(double lfRadius, double lfAngle,double lfDirection, LFFPOINT *pPlane);
	//计算节面起点对应圆周点号、节面交点在节面上的点号
	void GetCrossPointNo();
	//计算节面和圆周所围成的区域(2,3,4个)的坐标
	void GetPolygonData();
	//计算T或P轴位置
	void tpcall(double lfRadius, double ain, double az, double &lfx, double &lfy);
	int PtInPolygon(double *ax, double *ay, int nk, double x, double y);
	void DrawArrowLine(CDC *pDC, CPoint PointStart, CPoint PointEnd);
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -