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

📄 vector.h

📁 本程序是2005年参加中国机器人大赛的比赛程序
💻 H
字号:
// Vector.h: interface for the Vector class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_VECTOR_H__7B355C3C_C360_4B91_BCBA_590F12C02F34__INCLUDED_)
#define AFX_VECTOR_H__7B355C3C_C360_4B91_BCBA_590F12C02F34__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "math.h"

class Vector  
{
public:
	BOOL NearRobot();
	BOOL LineFromTwoPoint(double &,double&,double&,Vector);
	Vector(double x = 0, double y = 0) { this->x = x; this->y = y; }
	virtual ~Vector();
	double x;
	double y;  
 
	Vector operator +(const Vector &a) { return Vector(x + a.x, y + a.y); }
	Vector operator -( Vector a) { return Vector(x - a.x, y - a.y); }
//	Vector operator -(Vector a)		   { return Vector(x - a.x, y - a.y);}
	Vector operator *(const double &a) { return Vector(x * a, y * a); }
	Vector operator *(const Vector &a) { return Vector(x * a.x, y * a.y); }
	Vector operator /(const double &a) { return Vector(x / a, y / a); }
	Vector operator /(const Vector &a) { return Vector(x / a.x, y / a.y); }
	void operator =(const double &a) { x = a; y = a; }
	void operator =(const Vector &a) { x = a.x; y = a.y; }
	void operator +=(const Vector &a) { x += a.x;  y += a.y; }
	void operator +=(const double &a) { x += a;  y += a; }
	void operator -=(const Vector &a) { x -= a.x;  y -= a.y; }
	void operator -=(const double &a) { x -= a;  y -= a; }
	void operator *=(const double &a) { x *= a;  y *= a; }
	void operator /=(const double &a) { x /= a;  y /= a; }
	operator !=(const Vector &a) { return (x != a.x) || (y != a.y); } 
	operator !=(const double &a) { return (x != a) || (y != a); }
	operator ==(const Vector &a) { return (x == a.x) && (y == a.y); }
	inline double mod(){ return double(sqrt(x*x+y*y)); }
	inline double mod2() { return x*x + y*y; }//square mod
	void Normalize(){ if (mod2() != 0) (*this) /= mod(); }
	double dist(Vector& pos) { return (*this-pos).mod(); }
	double dist2(const Vector &a) { return (*this-a).mod2(); }//square dist
	BOOL Near(Vector p,double dist) { return (*this-p).mod2()<dist*dist?TRUE:FALSE; };

	double GetAngle();
	Vector Rotate(double ang);
};

#endif // !defined(AFX_VECTOR_H__7B355C3C_C360_4B91_BCBA_590F12C02F34__INCLUDED_)

⌨️ 快捷键说明

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