2DVector.h
Hlavičkový soubor pro třídu Vector
c-plus-plus
#ifndef _2DVECTOR_H
#define _2DVECTOR_H
#include <exception>
class DivisionByZero : public std::exception
{
public:
const char* what() const throw() {return "Division by zero";}
};
struct Point
{
double x;
double y;
Point(double X, double Y){x = X; y = Y;}
bool operator==(const Point & p) const {return p.x == x && p.y == y;}
};
class Vector
{
private:
double x;
double y;
double size;
double angle;
void Compute();
public:
Vector(){x = y = size = 0; angle = -1;}
Vector(double, double);
Vector(const Point &, const Point &);
Vector(double,double,double,double);
Vector operator+(const Vector & vector) const {return Vector(x + vector.x, y + vector.y);}
Vector operator-(const Vector & vector) const {return Vector(x - vector.x, y - vector.y);}
const Vector & operator+=(const Vector &);
const Vector & operator-=(const Vector &);
double operator*(const Vector & vector) const {return x * vector.x + y * vector.y;}
Vector operator*(double num) const {return Vector(x * num, y * num);}
Vector operator/(double num) const throw(DivisionByZero) {if(num == 0) throw DivisionByZero(); return Vector(x / num, y / num);}
const Vector & operator*=(double);
const Vector & operator/=(double) throw(DivisionByZero);
double operator%(const Vector &) const;
void Set(double,double);
void Set(const Point &, const Point &);
void Set(double,double,double,double);
double GetX() const {return x;}
double GetY() const {return y;}
double GetSize() const {return size;}
double GetAngle() const {return angle;}
};
#endif
Neformátovaný
Přidáno: 18.6.2013
Expirace: Neuvedeno