Пример #1
0
/*******************************************************************
*
*       _DrawPolygon

  Draws polygons of different shapes and colors
*/
static void _DrawPolygon(void) {
  int y = 90;
  /* clear display */
  GUI_SetBkColor(GUI_BLACK);
  GUI_Clear();
  /* display text */
  GUI_SetColor(GUI_WHITE);
  GUI_SetFont(&GUI_Font24_ASCII);
  GUI_SetTextAlign(GUI_TA_HCENTER);
  GUI_DispStringAt("DrawPolygon - Sample", 160, 5);
  GUI_SetFont(&GUI_Font8x16);
  GUI_DispStringAt("using", 5, 40);
  GUI_DispStringAt("GUI_FillPolygon", 5, 55);
  GUI_SetTextAlign(GUI_TA_HCENTER);
  GUI_DispStringAt("Polygons of arbitrary shape\nin any color", 160, y + 90);
  GUI_Delay(500);
  /* draw filled polygons */
  while (1) {
    GUI_ClearRect(100, y, 220, y + 85);
    GUI_SetColor(GUI_BLUE);
    GUI_FillPolygon (&_aPointArrow[0], 7, 160, y + 80);
    GUI_Delay(1000);
    GUI_ClearRect(100, y, 220, y + 85);
    GUI_SetColor(GUI_RED);
    GUI_FillPolygon (&_aPointStar[0], 8, 160, y + 45);
    GUI_Delay(1000);
    GUI_ClearRect(100, y, 220, y + 85);
    GUI_SetColor(GUI_GREEN);
    GUI_FillPolygon(&_aPointHexagon[0], 6, 160, y + 45);
    GUI_Delay(1000);
  }
}
static void DrawPrevious(int x, int y, int size)
{
	GUI_POINT pPoint[3]; 
	pPoint[0].x = (size/2);
	pPoint[0].y = 0;
	pPoint[1].x = (size/2);
	pPoint[1].y = size;
	pPoint[2].x = 0;
	pPoint[2].y = size / 2;
	
	GUI_FillPolygon(pPoint, 3, x, y);
	GUI_FillPolygon(pPoint, 3, x + size/2, y);
}
Пример #3
0
void GUIDEMO_DemoPolygon(void) {
  int XMid = LCD_GetXSize() / 2;
  int YMid = LCD_GetYSize() / 2;
  GUIDEMO_ShowIntro("Arbitrary Polygons", 
                    "\nStandard and antialiased");
  GUI_SetColor(GUI_WHITE);
  GUI_SetFont(&GUI_FontComic18B_ASCII);
  #if GUIDEMO_LARGE
    GUI_DispStringAt("Arbitrary\nPolygons", 0, 0);
  #endif
  GUI_FillPolygon(&_aArrow[0], 7, XMid - 50, YMid + 40);
  GUI_FillPolygon(&_aArrow[0], 7, XMid + 50, YMid + 40);
  GUI_SetColor(GUI_GREEN);
  GUI_FillPolygon(&_aTriangle[0], 3, XMid, YMid + 60);
  GUI_SetColor(GUI_WHITE);
  #if GUI_SUPPORT_AA
    GUI_AA_EnableHiRes();
    GUI_AA_FillPolygon(&_aiCursor[0], 4, XMid * 3, (YMid - 40) * 3);
  #endif
  GUIDEMO_Wait();
}
static void DrawPlay(int x, int y, int size)
{
	GUI_POINT pPoint[3]; 
	pPoint[0].x = 0;
	pPoint[0].y = 0;
	pPoint[1].x = size;
	pPoint[1].y = size / 2;
	pPoint[2].x = 0;
	pPoint[2].y = size;
	
	GUI_FillPolygon(pPoint, 3, x, y);
}
/*******************************************************************
*
*       _cbWindow

  This is the callback for the window. A callback was used
  for memory devices.
*/
static void _cbWindow(WM_MESSAGE* pMsg) {
    switch (pMsg->MsgId) {
    case WM_PAINT:
        GUI_SetBkColor(_color_a);
        GUI_ClearRect( 0, 0, 250, 14);
        GUI_SetBkColor(_color_b);
        GUI_ClearRect( 0, 15, 250, 29);
        GUI_SetBkColor(GUI_BLACK);
        GUI_ClearRect( 0, 30, 250, 60);
        GUI_SetColor(_color_c);
        GUI_FillPolygon(_aPolygon, POLY_POINTS, _pos_x1, _pos_y1);
        GUI_AA_FillPolygon(_aPolygon, POLY_POINTS, _pos_x2, _pos_y2);
        GUI_AA_EnableHiRes();
        GUI_AA_FillPolygon(_aPolygonHiRes, POLY_POINTS, _pos_x3, _pos_y3);
        GUI_AA_DisableHiRes();
        break;
    default:
        WM_DefaultProc(pMsg);
    }
}
Пример #6
0
/*******************************************************************
*
*       _DrawIt
*/
static void _DrawIt(void * pData) {
  tDrawItContext * pDrawItContext = (tDrawItContext *)pData;
  GUI_Clear();
  GUI_SetFont(&GUI_Font8x8);
  GUI_SetTextMode(GUI_TM_TRANS);
  /* draw background */
  GUI_SetColor(GUI_GREEN);
  GUI_FillRect(pDrawItContext->XPos_Text, 
               pDrawItContext->YPos_Text - 25,
               pDrawItContext->XPos_Text + 100,
               pDrawItContext->YPos_Text - 5);
  /* draw polygon */
  GUI_SetColor(GUI_BLUE);
  GUI_FillPolygon(pDrawItContext->aPointsDest, SIZE_OF_ARRAY(aPoints), 160, 120);
  /* draw foreground */
  GUI_SetColor(GUI_RED);
  GUI_FillRect(220 - pDrawItContext->XPos_Text, 
               pDrawItContext->YPos_Text + 5,
               220 - pDrawItContext->XPos_Text + 100,
               pDrawItContext->YPos_Text + 25);
}