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$ <> ""

代码解释:

  1. CLS:清空屏幕
  2. SCREEN 12:设置屏幕模式为高分辨率图形模式
  3. DIM SHARED cx, cy, r AS INTEGER:声明时钟圆心坐标 (cx, cy) 和半径 (r) 为整型变量
  4. DIM SHARED hour, minute, second AS INTEGER:声明时、分、秒为整型变量
  5. cx = 320: cy = 240: r = 200:设置时钟圆心坐标为 (320, 240),半径为 200
  6. hour = 0: minute = 0: second = 0:初始化时、分、秒为 0
  7. DO ... LOOP UNTIL INKEY$ <> "":循环执行代码,直到用户按下任何键
  8. hour = VAL(MID$(TIME$, 1, 2)):获取当前时间的小时
  9. minute = VAL(MID$(TIME$, 4, 2)):获取当前时间的分钟
  10. second = VAL(MID$(TIME$, 7, 2)):获取当前时间的秒钟
  11. CIRCLE (cx, cy), r, 15, , , , , FILL:绘制填充的时钟表盘
  12. CIRCLE (cx, cy), r, 0:绘制时钟表盘的外圈
  13. LINE (cx, cy)-(cx + 80 * SIN(hour * 30 + minute / 2), cy - 80 * COS(hour * 30 + minute / 2)), 4:绘制时针,长度为 80,颜色为 4
  14. LINE (cx, cy)-(cx + 120 * SIN(minute * 6 + second / 10), cy - 120 * COS(minute * 6 + second / 10)), 2:绘制分针,长度为 120,颜色为 2
  15. LINE (cx, cy)-(cx + 140 * SIN(second * 6), cy - 140 * COS(second * 6)), 1:绘制秒针,长度为 140,颜色为 1
  16. SLEEP 1:等待 1 秒

运行代码后,您将在屏幕上看到一个指针式时钟,时针、分针、秒针会随着时间变化而移动。

QBASIC 指针式时钟代码:绘制时针、分针、秒针

原文地址: http://www.cveoy.top/t/topic/jvDD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录