GUIDEMO_Polygon.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:3k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                uC/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : GUIDEMO_Polygon.c
  16. Purpose     : Several GUIDEMO routines
  17. ----------------------------------------------------------------------
  18. */
  19. #include "GUI.H"
  20. #include "GUIDEMO.H"
  21. #define countof(Obj) (sizeof(Obj)/sizeof(Obj[0]))
  22. /*********************************************************************
  23. *
  24. *       Static data
  25. *
  26. **********************************************************************
  27. */
  28. static const GUI_POINT _aArrow[] = {
  29.   {  0, - 5 },
  30.   {-40, -35 },
  31.   {-10, -25 },
  32.   {-10, -85 },
  33.   { 10, -85 },
  34.   { 10, -25 },
  35.   { 40, -35 }
  36. };
  37. static const GUI_POINT _aTriangle[] = {
  38. {  0,   0 }, 
  39.   {-30, -30 },
  40.   { 30, -30 },
  41. };
  42. static GUI_POINT _aiCursor[] = {
  43.   {  0,  0 }, 
  44.   { 50, 100 }, 
  45.   {  0, 90 }, 
  46.   {-50, 100 },
  47. };
  48. /*********************************************************************
  49. *
  50. *       Typedefs
  51. *
  52. **********************************************************************
  53. */
  54. typedef struct {
  55.   float Angle;
  56.   int DoClear;
  57. } tDrawContext;
  58. /*********************************************************************
  59. *
  60. *       GUIDEMO_DemoPolygon
  61. *
  62. **********************************************************************
  63. */
  64. void GUIDEMO_DemoPolygon(void) {
  65.   int XMid = LCD_GetXSize() / 2;
  66.   int YMid = LCD_GetYSize() / 2;
  67.   GUIDEMO_ShowIntro("Arbitrary Polygons", 
  68.                     "Standard and antialiased");
  69.   GUI_SetColor(GUI_WHITE);
  70.   GUI_SetFont(&GUI_FontComic18B_1);
  71.   #if GUIDEMO_LARGE
  72.     GUI_DispStringAt("ArbitrarynPolygons", 0, 0);
  73.   #endif
  74.   GUI_FillPolygon(&_aArrow[0], 7, XMid - 50, YMid + 40);
  75.   GUI_FillPolygon(&_aArrow[0], 7, XMid + 50, YMid + 40);
  76.   GUI_SetColor(GUI_GREEN);
  77.   GUI_FillPolygon(&_aTriangle[0], 3, XMid, YMid + 60);
  78.   GUI_SetColor(GUI_WHITE);
  79.   GUI_AA_EnableHiRes();
  80.   GUI_FillPolygonAA(&_aiCursor[0], 4, XMid * 3, (YMid - 40) * 3);
  81.   GUIDEMO_Wait();
  82. }