Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <math.h>
- #define USE_MATH_DEFINES
- struct Vector{
- Vector(double x, double y) : x(x), y(y){
- }
- double length() const{
- return sqrt(x * x + y * y);
- }
- Vector operator - () const{
- return Vector(-x, -y);
- }
- Vector & operator += (Vector const & v){
- x += v.x;
- y += v.y;
- return * this;
- }
- Vector & operator -= (Vector const & v){
- x -= v.x;
- y -= v.y;
- return * this;
- }
- Vector & operator *= (double d){
- x *= d;
- y *= d;
- return * this;
- }
- double x;
- double y;
- };
- Vector normalize(Vector const & v){
- double len = v.length();
- return Vector(v.x / len, v.y / len);
- }
- Vector operator * (Vector const & v, double d){
- return Vector(v.x * d, v.y * d);
- }
- Vector operator * (double d, Vector const & v){
- return v * d;
- }
- double operator * (Vector const & v, Vector const & w){
- return v.x * w.x + v.y * w.y;
- }
- double angle(Vector const & v, Vector const & w){
- double scal = v * w;
- double len_v = v.length();
- double len_w = w.length();
- double rad = acos(scal / (len_v * len_w));
- return rad / M_PI * 180.;
- }
- Vector operator + (Vector const & v, Vector const & w){
- return Vector(v.x + w.x, v.y + w.y);
- }
- Vector operator - (Vector const & v, Vector const & w){
- return v + (-w);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement