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

📄 position.h

📁 一个用VC++编写的绘图工具
💻 H
字号:
#ifndef _POSITION_H_
#define _POSITION_H_

// 如果距离小于DISTANCE_ZERO,则认为该距离为0
#ifndef DISTANCE_ZERO
#define DISTANCE_ZERO 1.e-6 
#endif
#define PI 3.14//		acos(-1)

//定义包围盒
typedef struct
{
    double      min[2], max[2] ; // 定义最大和最小坐标值
} BOX2D;

//定义位置类
class Position	{
public:
	double 		x;
	double 		y;		
public:	
	Position();
	Position(double ox, double oy);
	Position(const double *pnt);
	Position(const Position& positionSrc);
	~Position();
	void Init();

	double&	 operator[](const  int& i);
	operator const double *() const;       
	operator double *();			       
	
	const 	Position& operator=(const Position& positionSrc);
	void	Set(double x, double y);
	void	Set(const double *pnt);
	
	friend	Position  operator+(const Position& position1,const Position& position2);
	friend	Position  operator-(const Position& position1,const Position& position2);
	friend	Position  operator*(const Position& position, const double& scale);
	friend	Position  operator*(const double& scale,	  const Position& position);

	const	Position& operator+=(const Position& positionSrc);
	const 	Position& operator-=(const Position& positionSrc);
	const	Position& operator*=(const double& scale);

	double	Distance(const Position& pnt);
	BOOL	IsSame(const Position& pointSrc);
	BOOL	IsInBox(const BOX2D& box);

	Position Offset(const double & deltax,const double & deltay);
	Position Offset(const Position& off);
	Position Rotate(const Position& basePos, const double angle) ;
	Position Mirror(const Position& pos1, const Position& pos2) ;

	void Serialize(CArchive &ar) ;
};

double GetAngleToXAxis(const Position& pos1,const Position& pos2);
#endif

⌨️ 快捷键说明

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