QBASIC 指针式时钟绘制教程:用代码实现动态时针、分针、秒针
用 QBASIC 编写指针式时钟,时针、分针、秒针用不同颜色标示
CLS
SCREEN 12
DIM SHARED cx, cy, r AS INTEGER
DIM SHARED hour, minute, second AS INTEGER
cx = 320: cy = 240: r = 200
hour = 0: minute = 0: second = 0
DO
'获取当前时间
hour = VAL(MID$(TIME$, 1, 2))
minute = VAL(MID$(TIME$, 4, 2))
second = VAL(MID$(TIME$, 7, 2))
'画时钟表盘
CIRCLE (cx, cy), r, 15, , , , , FILL
CIRCLE (cx, cy), r, 0
'画时针
LINE (cx, cy)-(cx + 80 * SIN(hour * 30 + minute / 2), cy - 80 * COS(hour * 30 + minute / 2)), 4
'画分针
LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2
'画秒针
LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1
'等待1秒
SLEEP 1
LOOP UNTIL INKEY$ <> ""
解释:
-
CLS:清空屏幕 -
SCREEN 12:设置屏幕模式 -
DIM SHARED cx, cy, r AS INTEGER:定义全局变量,表示时钟中心点坐标和半径 -
DIM SHARED hour, minute, second AS INTEGER:定义全局变量,表示当前时间的时、分、秒 -
cx = 320: cy = 240: r = 200:初始化时钟中心点坐标和半径 -
hour = 0: minute = 0: second = 0:初始化当前时间 -
DO:程序进入无限循环,不断更新时钟 -
hour = VAL(MID$(TIME$, 1, 2)):获取当前小时数 -
minute = VAL(MID$(TIME$, 4, 2)):获取当前分钟数 -
second = VAL(MID$(TIME$, 7, 2)):获取当前秒数 -
CIRCLE (cx, cy), r, 15, , , , , FILL:画一个以(cx, cy)为中心,半径为r,填充颜色为15(白色)的圆,表示时钟表盘 -
CIRCLE (cx, cy), r, 0:画一个以(cx, cy)为中心,半径为r,边框颜色为0(黑色)的圆,表示时钟表盘的边框 -
LINE (cx, cy)-(cx + 80 * SIN(hour * 30 + minute / 2), cy - 80 * COS(hour * 30 + minute / 2)), 4:画一个从(cx, cy)到时针末端的线段,线宽为4,表示时针 -
LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2:画一个从(cx, cy)到分针末端的线段,线宽为2,表示分针 -
LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1:画一个从(cx, cy)到秒针末端的线段,线宽为1,表示秒针 -
SLEEP 1:等待1秒 -
LOOP UNTIL INKEY$ <> "":程序进入无限循环,直到用户按下任意键结束程序。
**注意:**这段代码需要在支持 QBASIC 的环境中运行。
更多学习资源:
- QBASIC 官方文档:https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms716099(v=vs.85)
- QBASIC 教程:https://www.tutorialspoint.com/qbasic/index.htm
原文地址: http://www.cveoy.top/t/topic/jvDJ 著作权归作者所有。请勿转载和采集!