UCGUI_Clock

来源:互联网 发布:wav无损播放软件 编辑:程序博客网 时间:2024/06/02 03:00
必须在includes.h里边包含math.h文件  否则会出现对正余弦函数 Cos() Sin()的警告
#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正负号没关系 ,因为图是对称的 
        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 = -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
原创粉丝点击