Triangle.h
上传用户:azhong891
上传日期:2013-06-04
资源大小:197k
文件大小:2k
源码类别:

GIS编程

开发平台:

Visual C++

  1. // Triangle.h: interface for the CTriangle class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_TRIANGLE_H__8BFDEC3D_B5F7_11D3_AB59_080039014899__INCLUDED_)
  5. #define AFX_TRIANGLE_H__8BFDEC3D_B5F7_11D3_AB59_080039014899__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. ////////////////////////////////////////////
  10. #include <math.h>
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13. #include "pointpos.h"
  14. enum POS//if a point belong a convexity
  15. {
  16. POS_IN=1,//a point  belong a triangle or convexity
  17. POS_ON=2,//a point belong a circle or on the edge of convexity
  18. POS_OUT=0,//a point out of a circle or convexity
  19. POS_ERROR=-1,
  20. };
  21. typedef struct
  22. {
  23. double x;
  24. double y;
  25. double z;
  26. } POI;//point
  27. ////////////////////////////////////////////
  28. class CTriangle : public CObject  
  29. {
  30. DECLARE_SERIAL(CTriangle)
  31. ////////////////////////////////////////////
  32. public:
  33. CTriangle(int p1,int p2,int p3);
  34.     POS Where(CPointPos *pos);//判断一点是否在本Triangle 的园 or Triangle 内
  35. int m_p1,m_p2,m_p3;//Save triangle 三个顶点的坐标数组的下标
  36. double m_xc,m_yc;//外接圆心坐标
  37. double m_rad;//外接圆Radius
  38. double m_x;double m_y;//重心
  39. double n1,n2,n3;//每边中点处f的法向导数值
  40. //加上f1,f2,f3共19个控制点*****************8
  41. double b1,b2,b3,o;
  42. double c1,c2,c3;
  43. double e1,e2,e3;
  44. double d12,d13,d21,d23,d31,d32;
  45.     //加上f1,f2,f3共19个控制点*****************8
  46. ////////////////////////////////////////////
  47. CTriangle();
  48. virtual ~CTriangle();
  49. virtual void Serialize(CArchive& ar);
  50. };
  51. #endif // !defined(AFX_TRIANGLE_H__8BFDEC3D_B5F7_11D3_AB59_080039014899__INCLUDED_)