Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

Avatar
Autor: Lukáš Hruda
Aktivity