易语言绘制时钟表盘
本帖最后由 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 界面:
完整程序下载: 美观的表盘 挺不错的 制作的不错,学习一下
不错,看起来非常厉害。谢谢分享。 已经很不错了,加油! 最容易学的语言,中文直接了然啊。 挺不错的 可以,不错 好看,谢谢分享。