论坛大神
  
- 积分
- 1850
- 金钱
- 1850
- 注册时间
- 2013-4-15
- 在线时间
- 163 小时
|

楼主 |
发表于 2014-6-25 10:58:27
|
显示全部楼层
补充一个关于作图的库函数
GRAPH_Command.h
----------------------------
#ifndef __GRAPH_COMMAND_h__
#define __GRAPH_COMMAND_h__
#include "lab_parameter.h"
/**********************************************************
* 函数库说明:图形函数扩展库 *
* 版本: v1.0 *
* 支持库: Splc501sys.asm / Splc501Hardware.asm *
* 作者: 傻孩子 *
* 日期: 2005年6月8日 *
* *
* 说明: 在现有系统图形函数基础上,扩展若干使用 *
* 方便的图形函数 *
**********************************************************/
/**************************
* 系 统 宏 定 义 *
**************************/
# define GRAPH FG_InitGraphic();
# define CLS FG_ClearScreen(DG_CLS_ERASE);
/**************************
* 全 局 变 量 定 义 *
**************************/
short Now_Str_X = 1;
short Now_Str_Y = 1;
/**************************
* 函 数 声 明 *
**************************/
void BOX(short LT_X,short LT_Y,short RB_X,short RB_Y,short IfEraser,short FillColor);
void LOCATE(short Str_x,short Str_y);
void  rint(char *Strings);
/***********************************************************
* 函数说明:画矩形框工具 *
* 输入:矩框坐标 DrawModel FillColor *
* [DrawModel] [说明] *
* 0 擦除 *
* 1 画线 *
* 2 填充 *
* [FillColor] [说明] *
* 0 白 *
* 1 黑 *
* 2 反色(XOR) *
***********************************************************/
void BOX(short LT_X,short LT_Y,short RB_X,short RB_Y,short DrawModel,short FillColor)
{
if (LT_X < 0) LT_X = 0;
if (LT_Y < 0) LT_Y = 0;
if (RB_X > 127) RB_X = 127;
if (RB_Y > 63) RB_Y = 63;
LT_X = 127 - LT_X;
LT_Y = 64 - LT_Y;
RB_X = 127 - RB_X;
RB_Y = 64 - RB_Y;
switch (DrawModel)
{
case 0:
if(FillColor == 1)
{
FG_SetRectStyle(DG_RECT_ERASE);
}
else
{
FG_SetRectStyle(DG_RECT_COVER);
}
FG_Rectangle(RB_X,RB_Y,LT_X,LT_Y);
break;
case 1:
if (FillColor == 1)
{
FG_SetRectStyle(DG_RECT_HOLLOW);
}
else if(FillColor == 0)
{
FG_SetRectStyle(DG_RECT_HOLLOW_ERASE);
}
else if(FillColor == 2)
{
FG_SetRectStyle(DG_RECT_SOLID_XOR);
}
FG_Rectangle(RB_X,RB_Y,LT_X,LT_Y);
break;
case 2:
if (FillColor == 1)
{
FG_SetRectStyle(DG_RECT_COVER);
FG_Rectangle(RB_X,RB_Y,LT_X,LT_Y);
}
else if (FillColor == 0)
{
FG_ClearRect(RB_X,RB_Y,LT_X,LT_Y,DG_CLS_ERASE);
}
else if (FillColor == 2)
{
FG_SetRectStyle(DG_RECT_SOLID_XOR);
FG_Rectangle(RB_X,RB_Y,LT_X,LT_Y);
}
break;
}
}
/***********************************************************
* 函数说明:字符串定位函数 *
* 输入:字符串文本坐标(1:4 1:16) *
***********************************************************/
void LOCATE(short Str_y,short Str_x)
{
if (Str_x >= 1 && Str_x <=17)
{
Now_Str_X = Str_x;
}
if (Str_y >= 1 && Str_y <=4)
{
Now_Str_Y = Str_y;
}
}
/***********************************************************
* 函数说明:字符串显示函数 *
* 输入:要显示的字符串 *
***********************************************************/
void  RINT(char *Strings)
{
short Temp_X =(Now_Str_X-1)<<3;
short Temp_Y =(Now_Str_Y-1)<<4;
if (Temp_X < 0) Temp_X = 0;
if (Temp_Y < 1) Temp_Y = 1;
Temp_X = 127 - Temp_X;
Temp_Y = 63 - Temp_Y;
FG_PutStr(Strings,3,Temp_X,Temp_Y);
}
#endif |
|