UCGUI_Clock
来源:互联网 发布:wav无损播放软件 编辑:程序博客网 时间:2024/06/02 03:00
必须在includes.h里边包含math.h文件 否则会出现对正余弦函数 Cos() Sin()的警告
#include "includes.h"
#include "includes.h"
int main(void)
{
int x0 = 160;
int y0 = 180;
int i;
char ac[4];
GUI_Init();
GUI_SetBkColor(GUI_WHITE);
GUI_Clear();
GUI_SetPenSize(5);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_SetFont(&GUI_FontComic18B_ASCII);
GUI_SetColor(GUI_BLACK);
GUI_DrawArc(x0,y0,150,150,-30,210);
//GUI_Delay(1000);
for(i=0;i<=23;i++)
{
/*圆弧右边-30度,左边210度,分成24份(i的循环是从0到23),没两个之间相差10度;
i*10就是第i个刻度与最右边的-30度相差的度数,减去30即是在圆周上的角度,乘以3.14除以180即是将角度变换成弧度;
(x0,y0)为圆弧中心 ,将弧度求正余弦(RCos(),RSin();R为半径)再加上中心点就是圆弧上的点,没有乘R=150,而是乘的141,是将刻度在圆弧里边突出出来,否则刻度会在圆弧上;
此处X,Y正负号没关系 ,因为图是对称的
/*圆弧右边-30度,左边210度,分成24份(i的循环是从0到23),没两个之间相差10度;
i*10就是第i个刻度与最右边的-30度相差的度数,减去30即是在圆周上的角度,乘以3.14除以180即是将角度变换成弧度;
(x0,y0)为圆弧中心 ,将弧度求正余弦(RCos(),RSin();R为半径)再加上中心点就是圆弧上的点,没有乘R=150,而是乘的141,是将刻度在圆弧里边突出出来,否则刻度会在圆弧上;
此处X,Y正负号没关系 ,因为图是对称的
float a = (-30+(float)i*10)*((float)3.14)/180;
int x = 141*cos(a) + x0 ;
int y = -141*sin(a) + y0 ;
if (i%2 == 0)
GUI_SetPenSize(5);
else
GUI_SetPenSize(4);
GUI_SetColor(GUI_BLACK);
GUI_DrawPoint(x,y);
if (i%2 == 0)
{
此处X符号如果为正,则右边最小为0,左边最大为220;
Y的值必须为负;
此处X符号如果为正,则右边最小为0,左边最大为220;
Y的值必须为负;
x = -123*cos(a) + x0 ;
y = -130*sin(a) + y0 ;
sprintf(ac,"%d",10*i);
GUI_SetTextAlign(GUI_TA_VCENTER);
GUI_DispStringHCenterAt(ac,x,y);
}
}
while(1)
{
}
}
0 0