網路城邦
上一篇 回創作列表 下一篇   字體:
320x240 彩色LCD營幕 - 時鐘程式
2020/09/10 17:10:07瀏覽405|回應0|推薦2

320x240 彩色LCD營幕 - 時鐘程式

影片連結

https://g.udn.com.tw/upfiles/B_PY/PYANG/PSN_PHOTO/447/f_25921447_1.jpg


本程式是在320x240 彩色LCD營幕,顯示類比式時鐘
本程式仍有許多可以美化畫面的細節,可以讓同好進一步的修改,
例如:1)秒針,分針與時針可以加粗線條
         2)在3/6/9/12點鐘的位置之白線條有別於其他時間的長短或粗細或顏色
         3)在類比點鐘的上方空白區,可以同時顯示數位式時間,日期與週的數字,最好是較大字體
本人起了主架構的程式,就看各位如何去發揮了。

程式碼:
for(i=0;i<=360;i+=30)
{ x0=120+(cos(i*PI/180)*90);
 y0=180+(sin(i*PI/180)*90);
 x1=120+(cos(i*PI/180)*110);
 y1=180+(sin(i*PI/180)*110);
 Line(x0,y0,x1,y1, YCOLOR[8]);
 x0=120+(cos((i+1)*PI/180)*90);
 y0=180+(sin((i+1)*PI/180)*90);
 x1=120+(cos((i+1)*PI/180)*110);
 y1=180+(sin((i+1)*PI/180)*110);
 Line(x0,y0,x1,y1, YCOLOR[8]);
 x0=120+(cos((i+2)*PI/180)*90);
 y0=180+(sin((i+2)*PI/180)*90);
 x1=120+(cos((i+2)*PI/180)*110);
 y1=180+(sin((i+2)*PI/180)*110);
 Line(x0,y0,x1,y1, YCOLOR[8]);
}
for(i=0;i<=360;i++)
{ x0=120+(cos(i*PI/180));
 y0=180+(sin(i*PI/180));
 x1=120+(cos(i*PI/180)*5);
 y1=180+(sin(i*PI/180)*5);
 Line(x0,y0,x1,y1, YCOLOR[8]);
}
{ i=(AC_sec*6+270)%360;    // 秒針
 if(i==0) v=354;
 else if(i==6) v=360;
 else v=(i-6)%360;
 w1=i;
 x0=120+(cos(v*PI/180));
 y0=180+(sin(v*PI/180));
 x1=120+(cos(v*PI/180)*75);
 y1=180+(sin(v*PI/180)*75);
 Line(x0,y0,x1,y1, YCOLOR[0]);
 x0=120+(cos(i*PI/180));
 y0=180+(sin(i*PI/180));
 x1=120+(cos(i*PI/180)*75);
 y1=180+(sin(i*PI/180)*75);
 Line(x0,y0,x1,y1, YCOLOR[6]);
 if(i==h || i==n) KCLK_flag=1;
}
if(ACLK_flag==1 || KCLK_flag==1)    //分針
{ i=(AC_min*6+270)%360;
 if(i==0) v=354;
 else if(i==6) v=360;
 else v=(i-6)%360;
 i++;v++;
 x0=120+(cos(v*PI/180));
 y0=180+(sin(v*PI/180));
 x1=120+(cos(v*PI/180)*65);
 y1=180+(sin(v*PI/180)*65);
 Line(x0,y0,x1,y1, YCOLOR[0]);
 x0=120+(cos(i*PI/180));
 y0=180+(sin(i*PI/180));
 x1=120+(cos(i*PI/180)*65);
 y1=180+(sin(i*PI/180)*65);
 Line(x0,y0,x1,y1, YCOLOR[2]);
 n=i;
 ACLK_flag=0;
}
//時針
{ i=((AC_hrs%12)*30)+270;
 x0=120+(cos(i*PI/180));
 y0=180+(sin(i*PI/180));
 x1=120+(cos(i*PI/180)*50);
 y1=180+(sin(i*PI/180)*50);
 Line(x0,y0,x1,y1, YCOLOR[0]);
 x0=120+(cos(i*PI/180));
 y0=180+(sin(i*PI/180));
 x1=120+(cos(i*PI/180)*50);
 y1=180+(sin(i*PI/180)*50);
 Line(x0,y0,x1,y1, YCOLOR[3]);
 h=i;
}
KCLK_flag=0;

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=PYANG&aid=150488721