lccccccc 发表于 2024-2-16 19:17

易语言绘制时钟表盘

本帖最后由 lccccccc 于 2024-2-16 19:23 编辑

自己写了一个易语言绘制时钟的程序,写的不是很好,大佬勿喷,一起学习交流、共同进步就行了。



程序代码部分:
```
.版本 2

.程序集 窗口程序集_启动窗口
.程序集变量 小时, 整数型
.程序集变量 分钟, 整数型
.程序集变量 小时夹角, 整数型
.程序集变量 分钟夹角, 整数型
.程序集变量 计算结果, 整数型
.程序集变量 中心x, 整数型
.程序集变量 中心y, 整数型
.程序集变量 返回x, 小数型
.程序集变量 返回y, 小数型

.子程序 _计算_被单击

小时 = 到整数 (时.内容)
分钟 = 到整数 (分.内容)
小时夹角 = (小时 + 分钟 ÷ 60) × 30
分钟夹角 = 分钟 × 6

画板1.清除 (, , , )
画板1.画笔颜色 = 颜色选择器1.颜色
画板1.文本颜色 = 颜色选择器1.颜色
画钟表 ()
画板1.画笔粗细 = 5
获取极坐标在屏幕上的位置 (100, 小时夹角)
画板1.画直线 (中心x, 中心y, 返回x + 中心x, 返回y + 中心y)
画板1.画笔粗细 = 3
获取极坐标在屏幕上的位置 (150, 分钟夹角)
画板1.画直线 (中心x, 中心y, 返回x + 中心x, 返回y + 中心y)


.子程序 __启动窗口_创建完毕

中心x = 画板1.宽度 ÷ 2
中心y = 画板1.高度 ÷ 2


.子程序 极坐标转平面直角坐标
.参数 半径, 整数型
.参数 极角, 整数型
.局部变量 弧, 小数型


弧 = 极角 × #pi ÷ 180
返回x = 半径 × 求余弦 (弧)
返回y = 半径 × 求正弦 (弧)

.子程序 画钟表
.局部变量 度数, 整数型
.局部变量 i, 整数型
.局部变量 X1, 整数型, , , 开始X坐标
.局部变量 Y1, 整数型, , , 开始Y坐标
.局部变量 X2, 整数型, , , 结束X坐标
.局部变量 Y2, 整数型, , , 结束Y坐标


画板1.画笔粗细 = 4
画板1.画椭圆 (5, 5, 中心x × 2 - 5, 中心y × 2 - 5)
获取极坐标在屏幕上的位置 (225, 45)
画板1.画椭圆 (中心x - 返回x, 返回y + 中心y, 返回x + 中心x, 中心y - 返回y)
.计次循环首 (60, i)
    度数 = i × 6
    获取极坐标在屏幕上的位置 (160, 度数)
    X1 = 返回x + 中心x
    Y1 = 返回y + 中心y
    .如果 (i % 5 = 0)
      获取极坐标在屏幕上的位置 (225, 度数)
      画板1.定位写出 (返回x + 中心x - 12, 返回y + 中心y - 12, 到文本 ((i - i % 5) ÷ 5))
      获取极坐标在屏幕上的位置 (200, 度数)
    .否则
      获取极坐标在屏幕上的位置 (180, 度数)
    .如果结束
    X2 = 返回x + 中心x
    Y2 = 返回y + 中心y
    画板1.画直线 (X1, Y1, X2, Y2)
.计次循环尾 ()

.子程序 获取极坐标在屏幕上的位置
.参数 半径, 整数型
.参数 极角, 整数型

极坐标转平面直角坐标 (半径, 极角 - 90)


.子程序 _按钮6_被单击

时.内容 = 到文本 (到整数 (时.内容) % 12 + 1)
_计算_被单击 ()


.子程序 _按钮5_被单击

时.内容 = 到文本 ((到整数 (时.内容) + 11) % 12)
.如果 (时.内容 = “0”)
    时.内容 = “12”
.否则

.如果结束
_计算_被单击 ()


.子程序 _按钮1_被单击
.局部变量 分钟1, 整数型

分钟1 = 到整数 (分.内容) + 1
.如果 (分钟1 ≥ 60)
    分钟1 = 分钟1 - 60
    _按钮6_被单击 ()' 增加一个小时
.否则

.如果结束
分.内容 = 到文本 (分钟1)
_计算_被单击 ()


.子程序 _按钮2_被单击
.局部变量 分钟1, 整数型

分钟1 = 到整数 (分.内容) - 1
.如果 (分钟1 < 0)
    分钟1 = 分钟1 + 60
    _按钮5_被单击 ()' 减去一个小时
.否则

.如果结束
_计算_被单击 ()
分.内容 = 到文本 ((到整数 (分.内容) + 59) % 60)
_计算_被单击 ()


.子程序 _按钮4_被单击
.局部变量 分钟1, 整数型

分钟1 = 到整数 (分.内容) + 5
.如果 (分钟1 ≥ 60)
    分钟1 = 分钟1 - 60
    _按钮6_被单击 ()' 增加一个小时
.否则

.如果结束
分.内容 = 到文本 (分钟1)
_计算_被单击 ()


.子程序 _按钮3_被单击
.局部变量 分钟1, 整数型

分钟1 = 到整数 (分.内容) - 5
.如果 (分钟1 < 0)
    分钟1 = 分钟1 + 60
    _按钮5_被单击 ()' 减去一个小时
.否则

.如果结束
_计算_被单击 ()
分.内容 = 到文本 (分钟1)
_计算_被单击 ()


.子程序 _时钟1_周期事件

' 程序启动时,自动开始画钟面,并取消时钟1
_计算_被单击 ()
时钟1.时钟周期 = 0

.子程序 _颜色选择器1_颜色被改变

_计算_被单击 ()
```


UI 界面:
   



完整程序下载:

52soft 发表于 2024-2-16 19:27

美观的表盘

52HWA 发表于 2024-2-16 19:28

挺不错的

wwd2018 发表于 2024-2-16 19:53

制作的不错,学习一下

chenyong2020 发表于 2024-2-16 20:05

不错,看起来非常厉害。谢谢分享。

andyfky 发表于 2024-2-16 20:27

已经很不错了,加油!

yct0605 发表于 2024-2-16 20:29

最容易学的语言,中文直接了然啊。

刘大富 发表于 2024-2-16 22:17

挺不错的

hao6988456 发表于 2024-2-16 23:13

可以,不错

wikiyc 发表于 2024-2-17 08:02

好看,谢谢分享。
页: [1] 2 3
查看完整版本: 易语言绘制时钟表盘