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

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

?? tft_api.c

?? GPRS模組,GPRS原理圖,sim300
?? C
?? 第 1 頁 / 共 4 頁
字號:
void TFT_PutPixelLine(WIN_HANDLE Handle, short x, short y, short len, COLOR *ColorTab)
{
	STR_WINDOW *Window = g_WinList + Handle;
	short Sx, Sy, Ex;
	short LB, RB, TB, BB;
	COLOR color;

	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	LB = Window->TLx>=0 ? Window->TLx : 0;					// Left bound
	RB = Window->BRx;										// Right bound
	TB = Window->TLy>=0 ? Window->TLy : 0;					// Top bound
	BB = Window->BRy;										// Bottom bound

	Sx = Window->TLx + x;
	Sy = Window->TLy + y;
	Ex = Window->TLx + x + len;

	if((Sy<TB) || (Sy>BB))return;							// 如果線在工作區外則直接退出
	if((Sx<LB && Ex<LB) || (Sx>RB && Ex>RB))return;

	if(Sx<LB)												// 確定實際繪畫區域
	{
		ColorTab += (LB - Sx);
		Sx = LB;
	}
	if(Ex>RB) Ex = RB;
	color = TFT_GetColor(Handle);
	while(Sx != Ex)
	{
		TFT_SetColor(Handle, *ColorTab++);
		TFT_PutPixelAbsolute(Handle, Sx, Sy);
		Sx++;
	}
	TFT_SetColor(Handle, color);
}

//=============================================================
//語法格式:	void TFT_Line(STR_WINDOW *Window, short x1, short y1, short x2, short y2);
//實現功能:	在工作區中畫直線
//參數:		Window - 工作窗口指針
//				x1 - 起始點的x坐標(相對于工作區)
//				y1 - 起始點的y坐標(相對于工作區)
//				x2 - 結束點的x坐標(相對于工作區)
//				y2 - 結束點的y坐標(相對于工作區)
//返回值:		無
//=============================================================
void TFT_Line(WIN_HANDLE Handle, short x1, short y1, short x2, short y2)
{
	STR_WINDOW *Window = g_WinList + Handle;
	short Sx, Sy, Ex, Ey;
	short LB, RB, TB, BB;
	short Offset_x,Offset_y,Offset_k = 0;
	short Err_d = 1;
	short W, H;

	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	TFT_GetWorkBufSize(&W, &H);
	LB = Window->TLx>=0 ? Window->TLx : 0;					// Left bound
	RB = Window->BRx;	// Right bound
	TB = Window->TLy>=0 ? Window->TLy : 0;					// Top bound
	BB = Window->BRy;	// Bottom bound

	Sx = Window->TLx + x1;
	Sy = Window->TLy + y1;
	Ex = Window->TLx + x2;
	Ey = Window->TLy + y2;

	if((Sx<LB && Ex<LB) || (Sx>RB && Ex>RB))return;			// 如果線在工作區外則直接退出
	if((Sy<TB && Ey<TB) || (Sy>BB && Ey>BB))return;

	if(Sx<LB) Sx = LB;										// 確定實際繪畫區域
	if(Sx>RB) Sx = RB;
	
	if(Sy<TB) Sy = TB;
	if(Sy>BB) Sy = BB;

	if(Ex<LB) Ex = LB;
	if(Ex>RB) Ex = RB;

	if(Ey<TB) Ey = TB;
	if(Ey>BB) Ey = BB;
	
	if(Sy>Ey)
	{
		Offset_x = Sx;
		Sx = Ex;
		Ex = Offset_x;
		Offset_y = Sy;
		Sy = Ey;
		Ey = Offset_y;
	}

	Offset_x = Ex-Sx;
	Offset_y = Ey-Sy;
	TFT_PutPixelAbsolute(Handle, Sx, Sy);
	if(Offset_x<=0)
	{
		Offset_x = Sx-Ex;
		Err_d = -1;
	}
	if(Offset_x>Offset_y)
	{
		while(Sx!=Ex)
		{
			if(Offset_k>0)
			{
				Sy += 1;
				Offset_k += (Offset_y-Offset_x);
			}
			else Offset_k += Offset_y; 
			Sx += Err_d;
			TFT_PutPixelAbsolute(Handle, Sx,Sy);
		}	
	}
	else
	{
		while(Sy!=Ey)
		{
			if(Offset_k>0)
			{
				Sx += Err_d;
				Offset_k += (Offset_x-Offset_y);
			}
			else Offset_k += Offset_x;
			Sy += 1;
			TFT_PutPixelAbsolute(Handle, Sx, Sy);
		}
	}
}

//=============================================================
//語法格式:	void TFT_Circle(STR_WINDOW *Window, unsigned x,unsigned y,unsigned r,unsigned Mode);
//實現功能:	在工作區中畫圓
//參數:		Window - 工作窗口指針
//				x - 圓心的x坐標(相對于工作區)
//				y - 圓心的y坐標(相對于工作區)
//				r - 圓的半徑
//				Mode -	0(PAINT_HOLLOW)	空心圓
//						1(PAINT_SOLID)	實心圓
//返回值:		無
//=============================================================
void TFT_Circle(WIN_HANDLE Handle, unsigned x,unsigned y,unsigned r,unsigned Mode)
{
	STR_WINDOW *Window = g_WinList + Handle;
	int dx,dy,ref;
	int Temp;
	
	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	if(r == 0)return;
	dx = r;
	dy = 1;
	ref = 707 * r / 1000;									// 參考值為0.707r

	if(Mode == PAINT_SOLID)									// 實心圓
	{
		while(dy <= dx)
		{
			if(dx > ref)
				TFT_Line(Handle, x + ref + 1, y + dy, x + dx, y + dy);

			if(x >= ref + 1 && dx > ref)
			{
				if(x < dx)
					Temp = 0;
				else
					Temp = x - dx;
				TFT_Line(Handle, Temp, y + dy, x - ref - 1, y + dy);
			}
			
			if(y >= dy && dx > ref)
				TFT_Line(Handle, x + ref + 1, y - dy, x + dx, y - dy);
			if(x >= ref + 1 && y >= dy && dx > ref)
			{
				if(x < dx)
					Temp = 0;
				else
					Temp = x - dx;
				TFT_Line(Handle, Temp, y - dy, x - ref - 1, y - dy);
			}

			if(dy != dx || dx == ref)
			{
				if(y < dx)
					Temp = 0;
				else
					Temp = y - dx;
				TFT_Line(Handle, x + dy, Temp, x + dy, y + dx);
			}

			if(x >= dy && (dy != dx || dy == ref))
			{
				if(y < dx)
					Temp = 0;
				else
					Temp = y - dx;
				TFT_Line(Handle, x - dy, Temp, x - dy, y + dx);
			}			
			dy++;
			if((r*r-dy*dy)<=(dx-1)*dx)
				dx--;
		}

		TFT_Line(Handle, x + ref + 1, y, x + r, y);

		if(x >= ref + 1)
		{
			if(x < r)
				Temp = 0;
			else
				Temp = x - r;
			TFT_Line(Handle, Temp, y, x - ref - 1, y);
		}

		if(y < r)
			Temp = 0;
		else
			Temp = y - r;
		TFT_Line(Handle, x, Temp, x, y + r);
	}
	else													// 空心圓
	{
		while(dy <= dx)
		{
			TFT_PutPixel(Handle, x + dx, y + dy);
			TFT_PutPixel(Handle, x - dx, y + dy);
			TFT_PutPixel(Handle, x + dx, y - dy);
			TFT_PutPixel(Handle, x - dx, y - dy);
			if(dx != dy)
			{
				TFT_PutPixel(Handle, x + dy, y + dx);
				TFT_PutPixel(Handle, x + dy, y - dx);
				TFT_PutPixel(Handle, x - dy, y + dx);
				TFT_PutPixel(Handle, x - dy, y - dx);
			}
			dy++;
			if((r*r-dy*dy)<=(dx-1)*dx)
				dx--;
		}
		TFT_PutPixel(Handle, x + r, y);
		TFT_PutPixel(Handle, x - r, y);
		TFT_PutPixel(Handle, x, y + r);
		TFT_PutPixel(Handle, x, y - r);
	}	
}

//=============================================================
//語法格式:	void TFT_Rectangle(STR_WINDOW *Window, unsigned x1, unsigned y1, unsigned x2, unsigned y2, unsigned Mode);
//實現功能:	在工作區中矩形
//參數:		Window - 工作窗口指針
//				x1 - 矩形的左上角x坐標(相對于工作區)
//				y1 - 矩形的左上角y坐標(相對于工作區)
//				x2 - 矩形的右下角x坐標(相對于工作區)
//				y2 - 矩形的右下角y坐標(相對于工作區)
//				Mode -	0(PAINT_HOLLOW)	空心矩形
//						1(PAINT_SOLID)	實心矩形
//返回值:		無
//=============================================================
void TFT_Rectangle(WIN_HANDLE Handle, unsigned x1, unsigned y1, unsigned x2, unsigned y2, unsigned Mode)
{
	STR_WINDOW *Window = g_WinList + Handle;
	int i;
	short W, H;

	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	TFT_GetWorkBufSize(&W, &H);
	if(x1>x2)
	{
		i = x1;
		x1 = x2;
		x2 = i;
	}
	if(x2 > Window->BRx)
		x2 = Window->BRx;
	if(y1>y2)
	{
		i = y1;
		y1 = y2;
		y2 = i;
	}
	if(y2 > Window->BRy)
		y2 = Window->BRy;
	if(Mode == PAINT_SOLID)									// 實心矩形
	{
		for(i=y1; i<=y2; i++)
		{
			TFT_Line(Handle, x1, i, x2, i);
		}
	}
	else													// 空心矩形
	{
		for(i = 0; i < Mode; i++)
		{
			TFT_Line(Handle, x1 + i, y1 + i, x2 - i, y1 - i);
			TFT_Line(Handle, x1 + i, y2 + i, x2 - i, y2 - i);
			TFT_Line(Handle, x1 + i, y1 + i+1, x1 - i, y2 - i-1);
			TFT_Line(Handle, x2 + i, y1 + i+1, x2 - i, y2 - i-1);
		}
	}
}

//=============================================================
//語法格式:	void TFT_SetTextPos(STR_WINDOW *Window, short x, short y);
//實現功能:	設置工作區中的文本顯示位置
//參數:		Window - 工作窗口指針
//				x - 文本的左上角x坐標(相對于工作區)
//				y - 文本的左上角y坐標(相對于工作區)
//返回值:		無
//=============================================================
void TFT_SetTextPos(WIN_HANDLE Handle, short x, short y)
{
	STR_WINDOW *Window = g_WinList + Handle;

	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	Window->CurTextX = x;
	Window->CurTextY = y;
}

//=============================================================
//語法格式:	void TFT_GetTextPos(STR_WINDOW *Window, short *x, short *y);
//實現功能:	獲取工作區中即將顯示的文本位置
//參數:		Window - 工作窗口指針
//				x - 文本的左上角x坐標(相對于工作區)
//				y - 文本的左上角y坐標(相對于工作區)
//返回值:		無
//=============================================================
void TFT_GetTextPos(WIN_HANDLE Handle, short *x, short *y)
{
	STR_WINDOW *Window = g_WinList + Handle;

	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	*x = Window->CurTextX;
	*y = Window->CurTextY;
}

//=============================================================
//語法格式:	void TFT_SetChineseFont(STR_WINDOW *Window, short FontType);
//實現功能:	設置當前使用的中文字庫
//參數:		Window - 工作窗口指針
//				FontType - 字庫序號(0~n)
//返回值:		無
//=============================================================
void TFT_SetChineseFont(WIN_HANDLE Handle, FONT FontID)
{
	STR_WINDOW *Window = g_WinList + Handle;

	if((Handle < 0) || (Handle >= MAX_WINDOW) || (Window->Flag == 0))
		return;
	Window->ChineseFont = FontID;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女视频黄 久久| 五月婷婷激情综合网| 91精品国产一区二区| 欧美日韩小视频| 欧美三级日韩三级国产三级| 在线中文字幕一区二区| 在线观看欧美黄色| 欧美丝袜自拍制服另类| 欧美高清精品3d| 欧美日韩国产首页在线观看| 欧美精品丝袜中出| 日韩免费高清av| 国产偷v国产偷v亚洲高清| 欧美精品一区二区久久婷婷| 久久女同精品一区二区| 国产精品视频免费| 麻豆免费看一区二区三区| 日韩专区欧美专区| 国产久卡久卡久卡久卡视频精品| 丰满亚洲少妇av| 91污在线观看| 欧美精品精品一区| 久久久不卡网国产精品二区| 亚洲国产精品激情在线观看| 亚洲自拍偷拍图区| 毛片一区二区三区| 91蜜桃网址入口| 777色狠狠一区二区三区| www激情久久| 亚洲精品美国一| 久草这里只有精品视频| 菠萝蜜视频在线观看一区| 欧美日韩综合在线| www国产成人| 一区二区久久久久| 国产九色sp调教91| 欧美亚洲精品一区| 国产性色一区二区| 午夜精品久久久久久久久久| 国产精品18久久久久| 欧美在线免费观看亚洲| 久久综合色之久久综合| 夜夜精品浪潮av一区二区三区| 国产在线精品一区二区夜色| 欧美性一二三区| 久久精品一区二区三区四区| 亚洲午夜精品网| 成人精品免费看| 精品对白一区国产伦| 亚洲国产精品麻豆| 成人a级免费电影| 精品sm捆绑视频| 日韩国产精品久久久| 日本高清不卡aⅴ免费网站| 26uuu国产电影一区二区| 亚洲va欧美va人人爽午夜| 99riav久久精品riav| 久久久久久久久久久电影| 奇米影视一区二区三区小说| 欧美性xxxxxxxx| 亚洲三级在线免费观看| 成人app软件下载大全免费| 精品1区2区在线观看| 免费精品视频在线| 欧美精品乱码久久久久久按摩| 一二三四社区欧美黄| 91色婷婷久久久久合中文| 中文字幕免费不卡| 国产69精品一区二区亚洲孕妇| 欧美不卡一区二区三区四区| 日韩精品欧美精品| 91麻豆精品国产91久久久久久| 一区二区三区.www| 在线观看不卡一区| 亚洲精品自拍动漫在线| 99精品欧美一区二区蜜桃免费| 久久亚洲二区三区| 欧美日韩精品一区视频| 一级中文字幕一区二区| 91麻豆国产自产在线观看| 亚洲日本va午夜在线影院| 91亚洲精华国产精华精华液| 椎名由奈av一区二区三区| 99久久国产综合精品色伊| 一区二区三区欧美亚洲| 欧美唯美清纯偷拍| 日韩福利电影在线| 精品久久久久久久久久久久久久久 | 久久精品夜色噜噜亚洲aⅴ| 经典三级视频一区| 久久精品视频一区二区三区| 国产成人免费av在线| 亚洲欧洲精品一区二区三区| 97超碰欧美中文字幕| 亚洲伊人色欲综合网| 欧美一级日韩免费不卡| 韩国三级中文字幕hd久久精品| 久久综合狠狠综合久久激情| 国产成人午夜99999| 17c精品麻豆一区二区免费| 欧美综合一区二区三区| 美女脱光内衣内裤视频久久网站 | 亚洲综合一区二区三区| 欧美日本韩国一区二区三区视频| 久久精品99国产精品日本| 欧美国产成人在线| 欧美日韩视频第一区| 韩日欧美一区二区三区| 亚洲欧洲日产国码二区| 777午夜精品视频在线播放| 国产91精品一区二区| 爽好久久久欧美精品| 中文字幕成人在线观看| 欧美精品在线观看一区二区| 国产成人激情av| 午夜精品久久久久久久| 国产免费久久精品| 日韩午夜三级在线| 91免费版在线| 国产精品一区二区在线观看不卡 | 麻豆精品新av中文字幕| 亚洲啪啪综合av一区二区三区| 精品久久久网站| 欧美二区三区91| 国产成人免费网站| 久久成人综合网| 亚洲一区二区三区爽爽爽爽爽| 国产三级精品在线| 日韩欧美国产精品| 久久人人97超碰com| 在线不卡中文字幕| 欧美性受xxxx黑人xyx性爽| 国产喷白浆一区二区三区| 欧美三级韩国三级日本三斤| 不卡av在线网| 国产一区二区三区黄视频| 日产国产欧美视频一区精品| 一区二区三区四区精品在线视频| 久久久久国产精品麻豆ai换脸| 日韩欧美一级二级| 欧美精品三级在线观看| 色av成人天堂桃色av| 91视频免费播放| 99久久久免费精品国产一区二区| 国产成人综合精品三级| 精东粉嫩av免费一区二区三区 | 日韩视频免费观看高清在线视频| 波多野洁衣一区| 成人免费高清视频在线观看| 国产乱子伦一区二区三区国色天香| 免费欧美在线视频| 日本va欧美va欧美va精品| 日本特黄久久久高潮| 美女视频第一区二区三区免费观看网站 | 色综合亚洲欧洲| eeuss国产一区二区三区| 国产乱码精品一区二区三区av| 老色鬼精品视频在线观看播放| 美洲天堂一区二卡三卡四卡视频| 视频一区二区三区中文字幕| 蜜桃视频在线观看一区二区| 美国一区二区三区在线播放| 精品一区二区三区免费| 久久99久久99| 国产suv精品一区二区6| 成人久久18免费网站麻豆| 91视频在线看| 69堂国产成人免费视频| 日韩精品一区二区在线观看| 欧美激情一区二区在线| 亚洲视频 欧洲视频| 无吗不卡中文字幕| 国产一区中文字幕| 成人久久久精品乱码一区二区三区 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美性色综合网| 91精品国产综合久久久久久漫画| 日韩欧美国产系列| 国产精品久久精品日日| 亚洲成人av一区二区| 国产一级精品在线| 在线看不卡av| 久久久不卡网国产精品一区| 亚洲激情图片一区| 久久精品国产**网站演员| 成人免费av资源| 欧美日韩亚洲综合| 国产免费成人在线视频| 五月婷婷综合激情| 成人教育av在线| 欧美精品在线观看一区二区| 国产精品久久久久久久浪潮网站| 亚洲综合色区另类av| 国产精品一二一区| 欧美日韩免费不卡视频一区二区三区| 精品av久久707| 日韩—二三区免费观看av| 99国产精品国产精品毛片| 欧美一级在线视频| 亚洲一区二区视频在线观看|