vector2d.h
上传用户:chinasdcnc
上传日期:2022-07-02
资源大小:2702k
文件大小:2k
源码类别:

分形几何

开发平台:

Visual C++

  1. //
  2. // Delaunay Triangulation
  3. //
  4. // Homework of CG lesson (Fall 2009) in Tsinghua University.
  5. // All rights reserved.
  6. //
  7. #pragma once
  8. /**
  9.  * class for 2d vector.
  10.  */
  11. class Vector2d
  12. {
  13. // public constructors & destructor
  14. public:
  15.     /**
  16.      * Sets all coordinate values to 0.0 by default.
  17.      */
  18.     Vector2d(void);
  19.     /**
  20.      * Sets x, y coordinate values with @c tx and @c ty.
  21.      */
  22.     Vector2d(double tx, double ty);
  23.     /**
  24.      * Copy constructor.
  25.      */
  26.     Vector2d(const Vector2d& vect);
  27. // public member functions
  28. public:
  29.     /**
  30.      * Gets the norm of vector.
  31.      */
  32. double norm(void) const;
  33.     /**
  34.      * Returns the square norm of vector.
  35.      */
  36.     double squareNorm(void) const;
  37.     /**
  38.      * Normalizes self.
  39.      * @return true if it is nonzero vector, or else @return false.
  40.      */
  41. bool normalize(void);
  42.     /**
  43.      * Operator +.
  44.      */
  45. Vector2d operator+(const Vector2d& vect) const;
  46.     /**
  47.      * Operator +=.
  48.      */
  49.     Vector2d& operator+=(const Vector2d& vect);
  50.     /**
  51.      * Operator -.
  52.      */
  53. Vector2d operator-(const Vector2d& vect) const;
  54.     /**
  55.      * Operator -=.
  56.      */
  57.     Vector2d& operator-=(const Vector2d& vect);
  58.     /**
  59.      * Operator *.
  60.      */
  61. Vector2d operator*(double c) const;
  62.     /**
  63.      * Operator *=.
  64.      */
  65.     Vector2d& operator*=(double c);
  66.     /**
  67.      * Returns the dot product of two <code>Vector2d</code>s.
  68.      */
  69. double dot(const Vector2d& vect);
  70. // public data members
  71. public:
  72.     double x;
  73.     double y;
  74. };