📄 vector.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 + -