line2d.cpp
上传用户: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. // temp include, delete later if necessary
  8. #include "stdafx.h"
  9. #include "line2d.h"
  10. // User headers
  11. #include "base.h"
  12. Line2d::Line2d(void)
  13.     :a(1.0), b(1.0), c(1.0)
  14. {
  15. }
  16. Line2d::Line2d(const Point2d& p1, const Point2d& p2)
  17. {
  18.     a = p2.y - p1.y;
  19.     b = p1.x - p2.x;
  20.     c = p1.y * (p2.x - p1.x) - p1.x * (p2.y - p1.y);
  21. }
  22. double Line2d::eval(const Point2d& p) const
  23. {
  24.     return (a * p.x + b * p.y + c);
  25. }
  26. int Line2d::classify(const Point2d& p) const
  27. {
  28.     double d = eval(p);
  29.     if (d < -TOLERANCE)
  30.         return -1;
  31.     else if (d > TOLERANCE)
  32.         return 1;
  33.     else
  34.         return 0;
  35. }