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 ' 时针长度 80
' 画分针
LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2 ' 分针长度 120
' 画秒针
LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1 ' 秒针长度 140
' 等待 1 秒
SLEEP 1
LOOP UNTIL INKEY$ <> ""
代码解释:
CLS:清空屏幕SCREEN 12:设置屏幕模式为高分辨率图形模式DIM SHARED cx, cy, r AS INTEGER:声明时钟圆心坐标 (cx, cy) 和半径 (r) 为整型变量DIM SHARED hour, minute, second AS INTEGER:声明时、分、秒为整型变量cx = 320: cy = 240: r = 200:设置时钟圆心坐标为 (320, 240),半径为 200hour = 0: minute = 0: second = 0:初始化时、分、秒为 0DO ... LOOP UNTIL INKEY$ <> "":循环执行代码,直到用户按下任何键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:绘制时针,长度为 80,颜色为 4LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2:绘制分针,长度为 120,颜色为 2LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1:绘制秒针,长度为 140,颜色为 1SLEEP 1:等待 1 秒
运行代码后,您将在屏幕上看到一个指针式时钟,时针、分针、秒针会随着时间变化而移动。
原文地址: http://www.cveoy.top/t/topic/jvDD 著作权归作者所有。请勿转载和采集!