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

分形几何

开发平台:

Visual C++

  1. // dtriangulationView.h : CdtriangulationView 类的接口
  2. //
  3. #include "point2d.h"
  4. #include <stack>
  5. #pragma once
  6. class CdtriangulationView : public CView
  7. {
  8. protected: // 仅从序列化创建
  9. CdtriangulationView();
  10. DECLARE_DYNCREATE(CdtriangulationView)
  11. // 属性
  12. public:
  13. CdtriangulationDoc* GetDocument() const;
  14.     bool isManInputState;
  15. bool isCircleTest;
  16. bool isTest;
  17.     bool isPro;
  18.     bool isLButtonDown;
  19.     bool isEnLarge;
  20.     bool isOne;
  21. bool isDTDemo;
  22. Point2d startTestPoint, finishTestPoint, tempTestPoint;
  23.     Point2d startRectPoint, endRectPoint, tempRectPoint;
  24. vector<Edge *> testTris;
  25. Edge* circleTri;
  26. Point2d cirTestCenter;
  27. double cirTestRadius;
  28. // demo dt
  29. std::vector <MaxEdge> maxEdges;
  30.     LARGE_INTEGER Freq;
  31.     LARGE_INTEGER BeginTime;
  32.     LARGE_INTEGER EndTime;
  33.     UINT_PTR m_nTimer;
  34.     int tempCount;
  35. // 操作
  36. public:
  37. /**
  38.  * Draws DT
  39.  */
  40. void drawDT(Edge* e);
  41. /**
  42.  * Resets every edge to be not visited
  43.  */
  44. void resetVisitedState(Edge* e);
  45. /**
  46.  * demo for DAC trigulation algorithm 
  47.  */
  48. MaxEdge delaunayDemo(int begin, int end, int timeInterval);
  49. // 重写
  50. public:
  51. virtual void OnDraw(CDC* pDC);  // 重写以绘制该视图
  52. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  53. protected:
  54. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  55. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  56. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  57. // 实现
  58. public:
  59. virtual ~CdtriangulationView();
  60. #ifdef _DEBUG
  61. virtual void AssertValid() const;
  62. virtual void Dump(CDumpContext& dc) const;
  63. #endif
  64. protected:
  65. // 生成的消息映射函数
  66. protected:
  67. DECLARE_MESSAGE_MAP()
  68. public:
  69.     afx_msg void OnGeneratePoints();
  70.     afx_msg void OnInputPoints();
  71.     afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  72.     afx_msg void OnTriangulation();
  73.     afx_msg void OnFileNew();
  74.     afx_msg void OnFileOpen();
  75.     afx_msg void OnFileSave();
  76. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  77. protected:
  78.     HGLRC m_hRC;
  79. public:
  80.     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  81.     afx_msg void OnDestroy();
  82.     afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  83.     afx_msg void OnSize(UINT nType, int cx, int cy);
  84. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  85.     afx_msg void OnDcelTest();
  86. afx_msg void OnCircleTest();
  87.     afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  88.     afx_msg void OnShowEnlarge();
  89.     afx_msg void OnShowRevert();
  90.     afx_msg void OnTimer(UINT_PTR nIDEvent);
  91. afx_msg void OnDtDemo();
  92. };
  93. #ifndef _DEBUG  // dtriangulationView.cpp 中的调试版本
  94. inline CdtriangulationDoc* CdtriangulationView::GetDocument() const
  95.    { return reinterpret_cast<CdtriangulationDoc*>(m_pDocument); }
  96. #endif