• GeoGebra 实例 时钟


    这个实例我是跟着b站一个视频做的,这是链接:

    [学用] Geogebra 时钟_哔哩哔哩_bilibili

    一、设置外形

    首先要画一个圆形,先设置半径、圆心,然后画圆

    1. cR=5
    2. O=(0,0)
    3. cO=Circle(O,cR)

    然后设置圆盘上的刻度线

    时针、分针和秒针刻度线需要区分,首先在圆上描点,然后绘制刻度线

    1. mPs=Sequence((cR;pi/2-pi/30*k),k,1,60)
    2. mSs=Sequence(Segment(mps(k),0.95*mPs(k)),k,0,60)
    3. hSs=Sequence(Segment(mPs(k),0.9*mPs(k)),k,5,60,5)

    文字部分,时钟数字1~12

    hTs=Sequence(Text(k,0.8*mPs(5*k)-(0.3,0.3)),k,1,12)

    接着绘画指针

    1. h=Slider(0,24,1)
    2. m=Slider(0,60,1)
    3. s=Slider(0,60,1)

    设置指针长度

    1. hR=2
    2. mR=3
    3. sR=4

    设置角度

    1. sA=pi/2-s/60*2*pi
    2. vS=Vector(0,0+(sR;sA))
    3. mA=pi/2-(m*60+s)/60*60*2*pi
    4. vM=Vector(0,0+(mR;mA))
    5. hA=pi/2-(h*60*60+m*60+s)/12*60*60*2*pi
    6. vH=Vector(0,0+(hR;hA))

    接下来可以将指针设置为自己喜欢的颜色

    二、设置动画

    将时针、分针和秒针设置为自动转动,设置两个滑动条,速度和时间,v是速度,t是时间

    1. v=Slider(1,120,1)
    2. t=Slider(0,24*60*60,1,v/(8640))

    现在有两种形式,第一种是通过t来改变s、m、h的值

    1. SetValue(s,Mod(t,60))
    2. SetValue(m,Mod(floor(t/60),60))
    3. SetValue(h,Mod(floor(t/3600),24))

    第二种形式是通过s、m、h改变t的值

    首先要改变进度条让s、m、h可以从60继续拖动自动跳到0

    直接更改脚本,在右键属性里

    s 脚本:

    1. SetValue(t,Mod(t+1,86400))
    2. SetValue(s,Mod(s+1,60))
    3. SetValue(m,Mod(floor(t/60),60))
    4. SetValue(h,Mod(floor(t/3600),24))

    m脚本:

    1. SetValue(t,Mod(t+60,86400))
    2. SetValue(s,Mod(s+1,60))
    3. SetValue(m,Mod(floor(t/60),60))
    4. SetValue(h,Mod(floor(t/3600),24))

    h脚本:

    1. SetValue(t,Mod(t+3600,86400))
    2. SetValue(s,Mod(s+1,60))
    3. SetValue(m,Mod(floor(t/60),60))
    4. SetValue(h,Mod(floor(t/3600),24))

    接下来,添加按钮:启动、停止、现在时间按钮

    启动 脚本:

    StartAnimation(t,True)

    停止 脚本:

    1. StartAnimation(t,False)
    2. StartAnimation(h,False)
    3. StartAnimation(m,False)
    4. StartAnimation(s,False)

    现在时间 脚本:

    1. ST=系统时间在()
    2. SetValue(t,ST(4)*3600+ST(3)*60+ST(2))

    接下来添加屏幕

    添加文本设置脚本:

    floor(h/10) 余式(h,10) : floor(m/10) 余式(m,10) : floor(s/10) 余式(s,10) 

    差不多就这些,下图是我设置的时钟,点击现在时间就可以将时间更新到当前时间

  • 相关阅读:
    Docker下载Tomcat镜像并运行Tomcat容器
    力扣每日一题48:旋转图像
    Pytorch 图像增强 实现翻转裁剪色调等 附代码(全)
    shell脚本踩坑,source中文properties。
    怎么从0到1实现一个PHP框架?
    Vue学习-基础入门篇(三万字收藏篇)
    SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
    文件上传预览下载
    JVM 中类加载的链接与初始化
    JDK源码分析实战系列-PriorityQueue
  • 原文地址:https://blog.csdn.net/GiGi_Princess/article/details/125425062