亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? guiarc.c

?? UC_GUI開發源代碼,里面含有范例,源文件
?? C
字號:
/*
*********************************************************************************************************
*                                             uC/GUI V3.98
*                        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        : GUIARCFloat.C
Purpose     : Draw Arc routines based on floating point
----------------------------------------------------------------------
Version-Date---Author-Explanation
----------------------------------------------------------------------
2.00.00 000325 RS     First release of the new algorithm
----------------------------------------------------------------------
Known problems or limitations with current version
----------------------------------------------------------------------
None.
----------------------------------------------------------------------
Open issues
----------------------------------------------------------------------
None
---------------------------END-OF-HEADER------------------------------
*/

#include <stddef.h>           /* needed for definition of NULL */
#include <math.h>
#include "GUI_Protected.h"

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/
/*********************************************************************
*
*       _CalcX
*/
static void _CalcX(int*px, int y, U32 r2) {
  int x =*px;
  U32 y2 = (U32)y*(U32)y;
  U32 r2y2 = r2-y2;
  U32 x2;
  if (y2>=r2) {
    *px=0;
		return;
	}
  /* x2 = r2-y2 */
  do {
    x++;
    x2 =(U32)x*(U32)x;
	} while (x2 < r2y2);
	*px = x-1;
}

/*********************************************************************
*
*       _CalcInterSectLin
*/
static float _CalcInterSectLin(float y, float y0, float y1, float x0, float x1) {
  if (y1==y0) {
	  return y0;
	} else {
    float Slope = (x1-x0)/(y1-y0);
   return (y-y0)*Slope+x0;
	}
}

/*********************************************************************
*
*       _DrawArc
*/
static void _DrawArc(int x0, int y0, int rx, int ry, int Angle0, int Angle1, int xMul, int yMul) {
  float afx[4];
  float afy[4];
	float ri = rx-(GUI_Context.PenSize+1.5)/2;
	float ro = rx+(GUI_Context.PenSize+1.5)/2;
  float fAngle0 = Angle0*3.1415926/180;
  float fAngle1 = Angle1*3.1415926/180;
  float sin0 = sin(fAngle0); 
  float sin1 = sin(fAngle1); 
  float cos0 = cos(fAngle0); 
  float cos1 = cos(fAngle1); 
  U32   ri2 = ri*ri;
  U32   ro2 = ro*ro;
	int y, yMax, yMin;
	afy[0] = ri*sin0;
	afy[1] = ro*sin0;
	afy[2] = ri*sin1;
	afy[3] = ro*sin1;
	afx[0] = ri*cos0;
	afx[1] = ro*cos0;
	afx[2] = ri*cos1;
	afx[3] = ro*cos1;
	yMin = ceil(afy[0]);
  yMax = floor(afy[3]);
  /* Use Clipping rect to reduce calculation (if possible) */
  if (GUI_Context.pClipRect_HL) {
    if (yMul ==1) {
      if (yMax > (GUI_Context.pClipRect_HL->y1 -y0))
        yMax = (GUI_Context.pClipRect_HL->y1 -y0);
      if (yMin < (GUI_Context.pClipRect_HL->y0 -y0))
        yMin = (GUI_Context.pClipRect_HL->y0 -y0);
    }
    if (yMul == -1) {
      if (yMin > (GUI_Context.pClipRect_HL->y1 -y0))
        yMin = (GUI_Context.pClipRect_HL->y1 -y0);
      if (yMax < (GUI_Context.pClipRect_HL->y0 -y0))
        yMax = (GUI_Context.pClipRect_HL->y0 -y0);
    }
  }
  /* Start drawing lines ... */
  {
  int xMinDisp, xMaxDisp, xMin=0,xMax=0;
    for (y=yMax; y>=yMin; y--) {
      _CalcX(&xMin, y, ri2);
      _CalcX(&xMax, y, ro2);
      if ((float)y< afy[1]) {
        xMaxDisp = _CalcInterSectLin(y,afy[0], afy[1], afx[0], afx[1]);
			} else {
        xMaxDisp = xMax;			
			}
      if ((float)y > afy[2]) {
        xMinDisp = _CalcInterSectLin(y,afy[2], afy[3], afx[2], afx[3]);
			} else {
        xMinDisp = xMin;			
			}
      if (xMul>0)
        LCD_HL_DrawHLine(xMinDisp+x0, yMul*y+y0, xMaxDisp+x0);
      else
        LCD_HL_DrawHLine(-xMaxDisp+x0, yMul*y+y0, -xMinDisp+x0);
    }
	}
#if 0  /* Test code */
{
  int i;
  GUI_SetColor( GUI_WHITE ); 
	for (i=0; i<4; i++)
    LCD_HL_DrawPixel(afx[i]+x0, afy[i]+y0);
}
#endif
  GUI_USE_PARA(ry);
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       GL_DrawArc
*/
void GL_DrawArc(int x0, int y0, int rx, int ry, int a0, int a1) {
  int aEnd;
  a0+=360;
	a1+=360;
	while (a0>=360) {
    a0 -= 360;
    a1 -= 360;
	}
/* Do first quadrant 0-90 degree */
DoFirst:
  if (a1<=0)
	  return;
	if (a0<90) {
    if (a0<0)
		  a0=0;
    aEnd = (a1<90) ? a1 : 90;
    _DrawArc(x0,y0,rx,ry,a0,aEnd, 1, -1);
	}
  a1-=90;
	a0-=90;
/* Do second quadrant 90-180 degree */
  if (a1<=0)
	  return;
	if (a0<90) {
    if (a0<0)
		  a0=0;
    aEnd = (a1<90) ? a1 : 90;
    _DrawArc(x0,y0,rx,ry,90-aEnd, 90-a0,-1,-1);
	}
  a1-=90;
	a0-=90;
/* Do third quadrant 180-270 degree */
  if (a1<=0)
	  return;
	if (a0<90) {
    if (a0<0)
		  a0=0;
    aEnd = (a1<90) ? a1 : 90;
    _DrawArc(x0,y0,rx,ry,a0,aEnd, -1, 1);
	}
  a1-=90;
	a0-=90;
/* Do last quadrant 270-360 degree */
  if (a1<=0)
	  return;
	if (a0<90) {
    if (a0<0)
		  a0=0;
    aEnd = (a1<90) ? a1 : 90;
    _DrawArc(x0,y0,rx,ry,90-aEnd, 90-a0,1,1);
	}
  a1-=90;
	a0-=90;
goto DoFirst;
}

/*********************************************************************
*
*       GUI_DrawArc
*/
void GUI_DrawArc(int x0, int y0, int rx, int ry, int a0, int a1) {
  GUI_LOCK();
  #if (GUI_WINSUPPORT)
    WM_ADDORG(x0,y0);
    WM_ITERATE_START(NULL) {
  #endif
  GL_DrawArc( x0, y0, rx, ry, a0, a1);
  #if (GUI_WINSUPPORT)
    } WM_ITERATE_END();
  #endif
  GUI_UNLOCK();
}

/*************************** End of file ****************************/
	 	 			 		    	 				 	  			   	 	 	 	 	 	  	  	      	   		 	 	 		  		  	 		 	  	  			     			       	   	 			  		    	 	     	 				  	 					 	 			   	  	  			 				 		 	 	 			     			 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线视频你懂得一区| 国产一区日韩二区欧美三区| 亚洲国产精品传媒在线观看| 精品91自产拍在线观看一区| 日韩三级中文字幕| 91蜜桃传媒精品久久久一区二区| 午夜欧美在线一二页| 日韩一区欧美二区| 蜜臀a∨国产成人精品| 麻豆精品蜜桃视频网站| 日韩1区2区3区| 国产综合成人久久大片91| 精品一区二区三区欧美| 另类小说图片综合网| 国产美女精品一区二区三区| 国产很黄免费观看久久| 久久精品国产99| 秋霞电影一区二区| 久久97超碰国产精品超碰| 国产伦精品一区二区三区免费| 国产精品一区二区三区四区| 成人a免费在线看| 国产成人精品亚洲日本在线桃色| 国产风韵犹存在线视精品| 99视频精品在线| 精品视频1区2区| 精品免费国产一区二区三区四区| 日韩一区二区三区电影在线观看| 色婷婷综合久色| 在线精品国精品国产尤物884a| 欧美日韩国产一二三| 日韩免费成人网| 亚洲欧美另类图片小说| 亚洲一二三区不卡| 国产麻豆视频精品| 色噜噜狠狠成人中文综合| 欧美一区二区精美| 中文子幕无线码一区tr| 亚洲国产精品天堂| 国产一区二区伦理| 欧美精品亚洲二区| 国产精品女同互慰在线看| 日本午夜精品视频在线观看| 99视频一区二区| 久久久亚洲综合| 日韩高清一区二区| 色一情一伦一子一伦一区| 2020国产成人综合网| 伊人婷婷欧美激情| 成人精品视频一区二区三区尤物| 欧美中文字幕亚洲一区二区va在线 | 秋霞电影一区二区| 粉嫩欧美一区二区三区高清影视| 欧美三级在线视频| 中文字幕日本乱码精品影院| 久久国产精品第一页| 欧美伊人久久久久久午夜久久久久| 精品精品欲导航| 一区二区三区不卡视频在线观看| 国产成人精品1024| 精品久久久久久久久久久院品网 | 欧美日韩高清影院| 日本一区二区三区四区在线视频 | 久久99精品一区二区三区三区| 91丨porny丨蝌蚪视频| 亚洲精品一线二线三线| 亚洲国产欧美一区二区三区丁香婷| 久久精品国产网站| 91.com视频| 亚洲风情在线资源站| 91免费版pro下载短视频| 国产精品麻豆欧美日韩ww| 激情综合网av| 久久久国产一区二区三区四区小说| 五月天亚洲婷婷| 欧美一区二区视频在线观看 | 精品欧美黑人一区二区三区| 亚洲女女做受ⅹxx高潮| 国产麻豆欧美日韩一区| 久久久久久9999| 紧缚奴在线一区二区三区| 在线电影一区二区三区| 日韩综合小视频| 欧美一区二区在线播放| 美女免费视频一区二区| 久久久国产综合精品女国产盗摄| 狠狠色狠狠色合久久伊人| 久久亚洲一区二区三区明星换脸| 久久99国产精品久久| 精品国产欧美一区二区| 91在线国内视频| 亚洲午夜精品在线| 欧美成人激情免费网| 国产91丝袜在线18| 亚洲视频一区在线观看| 欧美日韩三级一区二区| 麻豆精品一区二区三区| 欧美国产精品久久| 色婷婷综合久久久久中文一区二区 | 一区二区三区高清不卡| 欧美日韩另类一区| 韩国欧美国产一区| 亚洲欧美怡红院| 在线观看日韩高清av| 美脚の诱脚舐め脚责91| 欧美激情艳妇裸体舞| 成人午夜免费电影| 国产精品久久久久aaaa樱花 | 亚洲最大的成人av| 在线电影国产精品| 国产精品一区二区x88av| 一区二区三区视频在线看| 欧美变态tickling挠脚心| 粉嫩绯色av一区二区在线观看| 亚洲一区二三区| 精品国产91洋老外米糕| 国产精品中文字幕欧美| 中文字幕日韩av资源站| 日韩欧美国产系列| 色哟哟精品一区| 国产黄色91视频| 爽好多水快深点欧美视频| 久久精品一区二区三区av| 欧美日韩精品专区| av爱爱亚洲一区| 紧缚捆绑精品一区二区| 亚洲第一久久影院| 丝袜亚洲另类欧美| 国产精品国产精品国产专区不蜜 | 久久亚洲二区三区| 欧美三级视频在线| 99热99精品| 国产成人免费网站| 老司机午夜精品99久久| 亚洲高清三级视频| 亚洲色图在线看| 26uuu亚洲综合色欧美| 欧美性一级生活| 色综合色综合色综合色综合色综合 | 久久精品99久久久| 亚洲午夜激情网页| 亚洲欧美另类小说视频| 国产欧美一区二区精品忘忧草 | www.欧美色图| 久久国产人妖系列| 免费在线欧美视频| 奇米亚洲午夜久久精品| 老汉av免费一区二区三区 | 久久久蜜臀国产一区二区| 欧美色图片你懂的| 日本高清视频一区二区| 91麻豆免费看| 99精品欧美一区二区三区综合在线| 美日韩一区二区| 国产一区三区三区| 国模冰冰炮一区二区| 黑人精品欧美一区二区蜜桃| 久久99精品久久只有精品| 日韩电影免费在线| 97久久超碰国产精品电影| 日韩电影在线免费| 日本亚洲电影天堂| 午夜av区久久| 久久成人羞羞网站| 狠狠色丁香婷婷综合久久片| 国产一区二区毛片| 国产精品系列在线播放| 成年人午夜久久久| 91麻豆免费视频| 欧美色中文字幕| 久久这里只有精品6| 2欧美一区二区三区在线观看视频| 日本一区二区免费在线观看视频| 国产精品不卡在线观看| 亚洲欧美日韩久久| 日韩av一二三| 麻豆视频观看网址久久| 韩国av一区二区三区在线观看 | 日韩欧美综合一区| 久久精品在线免费观看| 亚洲男人天堂av网| 五月天精品一区二区三区| 91丨国产丨九色丨pron| 成人一二三区视频| 欧美性xxxxxxxx| 精品日韩在线一区| 亚洲私人黄色宅男| 九九九久久久精品| 在线观看精品一区| 国产亚洲一本大道中文在线| 亚洲人成在线观看一区二区| 亚洲人亚洲人成电影网站色| 蜜臀久久久久久久| 丁香六月综合激情| 欧美一区二区高清| 一区二区三区在线免费观看 | 亚洲男人的天堂一区二区 | 国产精品入口麻豆原神| 午夜精品在线视频一区| 丁香啪啪综合成人亚洲小说 |