⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guidemo_polygon.c

📁 MCB2300_ucgui_LCD320240.rar LPC2368的uc/gui的移植
💻 C
字号:
/*
*********************************************************************************************************
*   											 uC/GUI
*   					 Universal graphic software for embedded applications
*
*   					(c) Copyright 2002, Micrium Inc., Weston, FL
*   					(c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
*
*   		   礐/GUI is protected by international copyright laws. Knowledge of the
*   		   source code may not be used to write a similar product. This file may
*   		   only be used in accordance with a license and should not be redistributed
*   		   in any way. We appreciate your understanding and fairness.
*
----------------------------------------------------------------------
File		: GUIDEMO_Polygon.c
Purpose 	: Several GUIDEMO routines
----------------------------------------------------------------------
*/

#include "GUI.h"
#include "GUIDEMO.h"

#define COUNTOF(Obj) (sizeof(Obj)/sizeof(Obj[0]))

/*********************************************************************
*
*   	Static data
*
**********************************************************************
*/

static const GUI_POINT _aArrow[] = {
{  0,  30 },
{ - 40,   0 },
{ - 10,  10 },
{ - 10, -50 },
{ 10, -50 },
{ 10,  10 },
{ 40,   0 }
};

static const GUI_POINT _aTriangle[] = {
{  0,  0 }, 
{ - 30, 30 },
{ 30, 30 },
};

#if GUI_SUPPORT_AA
static const GUI_POINT _aiCursor[] = {
{  0, -10 }, 
{ 50,    0 }, 
{  0, -100 }, 
{ - 50,    0 }
};
#endif

/*********************************************************************
*
*   	static code
*
**********************************************************************
*/
/*********************************************************************
*
*   	_MagnifyPolygon
*/
#if ((LCD_XSIZE != 320) || (LCD_YSIZE != 240))
static void _MagnifyPolygon(GUI_POINT *pDest, const GUI_POINT *pSrc, int NumPoints, float Mag)
{
	int j;
	for (j = 0; j < NumPoints; j++)
	{
		(pDest + j)->x = (pSrc + j)->x * Mag;
		(pDest + j)->y = (pSrc + j)->y * Mag;
	}
}
#endif

/*********************************************************************
*
*   	public code
*
**********************************************************************
*/
/*********************************************************************
*
*   	GUIDEMO_DemoPolygon
*/
void GUIDEMO_DemoPolygon(void)
{
	GUI_COLOR Color;
	int XMid = (LCD_XSIZE >> 1);
	int YMid = (LCD_YSIZE >> 1);
	GUIDEMO_ShowIntro("Arbitrary Polygons", "\nStandard and antialiased");
	GUI_SetColor(GUI_WHITE);
#if GUIDEMO_LARGE
	GUI_SetFont(&GUI_FontComic18B_ASCII);
	GUI_DispStringAt("Arbitrary\nPolygons", 0, 0);
	YMid += 10;
#endif
#if ((LCD_XSIZE != 320) || (LCD_YSIZE != 240))
	{
		GUI_POINT aPolygon[8];
		float Factor;
#if ((LCD_XSIZE / 320) < (LCD_YSIZE / 240))
		Factor = LCD_XSIZE / 320.f;
#else
		Factor = LCD_YSIZE / 240.f;
#endif
#if !(GUIDEMO_LARGE)
		Factor *= 1.2f;
#endif
		/* Draw arrows */
		_MagnifyPolygon(aPolygon, _aArrow, COUNTOF(_aArrow), Factor);
		GUI_FillPolygon(aPolygon, 7, XMid - (50 * Factor), YMid);
		GUI_FillPolygon(aPolygon, 7, XMid + (50 * Factor), YMid);
		/* Draw triangle */
		_MagnifyPolygon(aPolygon, _aTriangle, COUNTOF(_aTriangle), Factor);
		Color = GUIDEMO_SetColor(GUI_GREEN);
		if (Color != GUI_GREEN)
		{
			GUI_SetColor(GUI_YELLOW);
		}
		GUI_FillPolygon(aPolygon, 3, XMid, YMid + (10 * Factor));
		/* Draw cursor */
#if GUI_SUPPORT_AA
		GUI_SetColor(GUI_WHITE);
		GUI_AA_EnableHiRes();
		_MagnifyPolygon(aPolygon, _aiCursor, COUNTOF(_aiCursor), Factor);
		GUI_AA_FillPolygon(aPolygon, 4, XMid * 3, (YMid - (10 * Factor)) * 3);
#endif
	}
#else
	GUI_FillPolygon(_aArrow, 7, XMid - 50, YMid);
	GUI_FillPolygon(_aArrow, 7, XMid + 50, YMid);
	/* Draw triangle */
	Color = GUIDEMO_SetColor(GUI_GREEN);
	if (Color != GUI_GREEN)
	{
		GUI_SetColor(GUI_YELLOW);
	}
	GUI_FillPolygon(_aTriangle, 3, XMid, YMid + 10);
	/* Draw cursor */
#if GUI_SUPPORT_AA
	GUI_SetColor(GUI_WHITE);
	GUI_AA_EnableHiRes();
	GUI_AA_FillPolygon((GUI_POINT *) _aiCursor, 4, XMid * 3, (YMid - 10) * 3);
#endif
#endif
	GUIDEMO_Wait();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -