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

分形几何

开发平台:

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. #include "point2d.h"
  9. /**
  10.  * The class for Line2d.
  11.  */
  12. class Line2d
  13. {
  14. // public constructors & destructor
  15. public:
  16.     /**
  17.      * Sets all the line parameters to 1.0 by default.
  18.      */
  19.     Line2d(void);
  20.     /**
  21.      * Line passes by two points, start point @c p1 and end point @c p2.
  22.      */
  23.     Line2d(const Point2d& p1, const Point2d& p2);
  24. // public member functions
  25. public:
  26.     /**
  27.      * Returns the value of a * p.x + b * p.y + c.
  28.      */
  29.     double eval(const Point2d& p) const;
  30.     /**
  31.      * Classifies the point @c p is whether to the left, to the right,
  32.      * or just on the line.
  33.      * @return -1 when is to the left;
  34.      * @return 1 when is to the right;
  35.      * @return 0 when is on the line.
  36.      */
  37.     int classify(const Point2d& p) const;
  38. // public data members
  39. public:
  40.     /**
  41.      * These line parameters meet the equation ax + by + c = 0;
  42.      */
  43.     double a, b, c;
  44. };