本发明涉及动态几何的应用软件技术领域,具体涉及一种基于参数的动画按钮装置及显示方法。
背景技术:
基于动态几何的应用软件,主要用于数学、物理等理科的教学辅助软件;其中的动画控制按钮,通过控制参数变化,达到动态展示图形元素之间不变的几何性质的效果。例如参数u000的范围为0-1,其值控制了一个线段上的半自由点的位置(可以是该点到线段起点的距离与线段长度的比值);同理曲线上点、由数学表达式表示的坐标点等,都是由不同的变量来约束它们的几何位置。现有动画按钮通常指定控制的变量名称、依次设置变量的起始值、终止值、运动次数、运动频率等控制信息。当用户点击动画按钮时,系统处理流程如下:a.计算步长:变量的终止值减去起始值除以运动次数,得到每次运动所需的步长;b.定时计算:根据用户设置的运动频率,使用程序定时函数进行运算:变量的值等于变量当前的值加上之前计算的步长;c.遍历几何元素:遍历与该变量相关的几何元素,更新这些几何元素的位置和几何信息,达到几何元素的动画效果;d.当运动次数达到预设的运动次数后,动画停止。
现有技术的缺点:1.一个动画按钮通常只能控制一个变量,无法方便的实现复杂组合动画:如果需要同时控制多个几何元素变化,则必须将这些几何元素都和同一个变量进行关联,增加了使用难度。2.动画的起始值、终止值、运动次数、运动频率都设置为具体数值,无法动态修改;也无法完成数学中常用的数据迭代;3.动画类型单一:默认为一次运动,即从起始值按照预设的运动次数、频率运动至终止值结束;无法实现动画序列、运动方向等。
技术实现要素:
本发明克服了现有技术的不足,提供一种基于参数的动画按钮装置及显示方法,旨在能实现复杂的复合动画,达到丰富动画功能的目的。
考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:
一种基于参数的动画按钮装置,它包括:
序列判断模块,用于判断扩展动画序列类型是串行或并行;
计算模块,用于并行动画中,计算多个变量的运动间隔的最大公因子,作为同步的基准间隔;以及分别计算出每个变量在基准间隔下的实际运动步长及所需的运动次数;
动画类型执行模块,用于根据的动画的类型执行相应的一次并行,或重复并行,或往复并行,或一次串行,或重复串行,或往复串行的动画流程。
本发明还可以是:
一种基于参数的动画按钮装置显示的方法,它包括:
ⅰ)开始播放时,判断该动画的序列类型,若是并行动画,则进入第ⅱ)步;若是串行动画则进入第ⅳ)步;
ⅱ)并行动画中,计算多个变量的运动间隔的最大公因子,作为同步的基准间隔;
ⅲ)分别计算出每个变量在步骤ⅱ)计算出的基准间隔下的实际运动步长及所需的运动次数;
ⅳ)根据动画的类型执行相应的一次并行,或重复并行,或往复并行,或一次串行,或重复串行,或往复串行的动画流程。
为了更好地实现本发明,进一步的技术方案是:
根据本发明的一个实施方案,所述一次并行运动的实现过程包括:
1)将全局计数sysCount置为0;
2)将标识当前变量对象的下标i置为0,并将动画结束标识符isEnd置为true;
3)判断全局计数是否小于当前第i个变量的运动次数,如果是则跳转至第6)步;
4)将动画结束标识符isEnd置为false,表示还有变量没有完成的动画;
5)计算并修改第i个变量的值,计算方法为当前变量的值加上当前变量的增量;
6)标识变量下标的变量i++;
7)判断i是否小于变量的总数量-1,如果否则跳转至第3步;
8)判断isEnd是否为false,如果是则跳转至第9步,否则跳转至第11步;
9)全局计数sysCount++;
10)等待realTimer的时间间隔后,跳转至第2步;
11)结束。
根据本发明的另一个实施方案,所述重复并行运动实现过程包括:
1)将全局计数sysCount置为0;
2)将标识当前变量对象的下标i置为0;
3)判断sysCount与第i个变量的运动次数取模是否等于0,如果是则跳转至第5步,否则跳转至第4步;
4)计算并修改第i个变量的值,计算方法为当前变量的值加上当前变量的增量;
5)将第i个变量的值置为变量的起始值;
6)全局计数sysCount++;
7)判断i是否小于变量的数量-1,如果是则跳转至第9步,如果否则跳转至第8步;
8)变量下标i++,并跳转至第3步;
9)等待realTimer的时间间隔后,跳转至第2步。
根据本发明的另一个实施方案,所述往复并行运动的实现过程包括:
1)将全局计数sysCount置为0;
2)将标识当前变量对象的下标i置为0;
3)判断sysCount与第i个变量的运动次数取模是否等于0,如果是则跳转至第5步,否则跳转至第4步;
4)计算并修改第i变量的值,计算方法为当前变量的值加上当前变量的增量;
5)将第i个变量的步长取反;
6)全局计数sysCount++;
7)判断i是否小于变量的数量-1,如果是则跳转至第9步,如果否则跳转至第8步;
8)变量下标i++,并跳转至第3步;
9)等待realTimer的时间间隔后,跳转至第2步。
根据本发明的另一个实施方案,所述一次串行运动的实现过程包括:
1)将标识当前变量对象的下标i置为0;
2)将全局计数器sysCount置为0,并将第i个变量的值置为起始值;
3)判断sysCount与第i个变量的运动次数取模值是否等于0,如果是则跳转至第6步,如果否则跳转至第4步;
4)计算并修改当前变量的值,计算方法为当前变量的值加上当前变量的增量;
5)全局计数sysCount++,并跳转至第9步;
6)判断i是否小于变量的数量-1,如果是则跳转至第7步,如果否则跳转至第8步;
7)下标i++,跳转至第2步;
8)结束;
9)等待第i个变量的时间间隔后,跳转至第3步。
根据本发明的另一个实施方案,所述重复串行运动的实现过程包括:
1)将标识当前变量对象的下标i置为0;
2)将全局计数器sysCount置为0,并将第i个变量的值置为起始值;
3)判断sysCount与第i个变量的运动次数取模值是否等于0,如果是则跳转至第6步,如果否则跳转至第4步;
4)计算并修改当前变量的值,计算方法为当前变量的值加上当前变量的增量;
5)全局计数sysCount++,并跳转至第8步;
6)判断i是否小于变量的数量-1,如果是则跳转至第7步,如果否则跳转至第8步;
7)下标i++,跳转至第2步;
8)等待第i个变量的时间间隔后,跳转至第3步。
根据本发明的另一个实施方案,所述反复串行运动的实现过程包括:
1)将标识变量的下标i置为0;
2)将全局计数sysCount置为0,第i个变量的值置为起始值;
3)判断sysCount与第i个变量的预运动次数取模是否等于0,如果是则跳转至第4步,如果否则跳转至第9步;
4)将第i个变量的步长取反;
5)将第i个变量的起始值置为第i个变量当前值;
6)判断i是否小于变量的数量-1,如果是则跳转至第7步,如果否则跳转至第1步;
7)标识变量的下标i++,并跳转至第2步;
8)计算并修改当前变量的值,计算方法为当前变量的值加上当前变量的增量;
9)全局计数sysCount++;
10)等待第i个变量的时间间隔后,跳转至第3步。
与现有技术相比,本发明的有益效果之一是:
本发明的一种基于参数的动画按钮装置及显示方法,按钮支持同时控制多个变量;可分别设置各个变量的起始值、终止值、运动次数和运动频率;扩展了动画类型,其支持一次运动、重复运动和往复运动;扩展了动画序列,可以是并行或串行;其组成的动画运动流程能够实现复杂的复合动画,达到丰富动画功能的目的,可实现六种不同的动画效果;本发明降低了用户创建复合及动画序列的操作难度;以及完善了动画类型和序列,大幅增强了动态几何动画功能。
附图说明
为了更清楚的说明本申请文件实施例或现有技术中的技术方案,下面将对实施例或现有技术的描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅是对本申请文件中一些实施例的参考,对于本领域技术人员来讲,在不付出创造性劳动的情况下,还可以根据这些附图得到其它的附图。
图1示出了根据本发明一个实施例的动画显示流程示意图。
图2示出了根据本发明一个实施例的一次并行运动流程示意图。
图3示出了根据本发明一个实施例的重复并行运动流程示意图。
图4示出了根据本发明一个实施例的往复并行运动流程示意图。
图5示出了根据本发明一个实施例的一次串行运动流程示意图。
图6示出了根据本发明一个实施例的重复串行运动流程示意图。
图7示出了根据本发明一个实施例的反复串行运动流程示意图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
为弥补现有动画设计的缺点,方便用户创建复杂的动画序列,本发明的技术方案基本思路如下:
a.按钮支持同时控制多个变量;
b.可分别设置各个变量的起始值、终止值、运动次数和运动频率;
c.扩展动画类型:支持一次运动、重复运动、往复运动;
d.扩展动画序列:并行、串行。
基于以上思路,该方案的动画按钮可支持同时控制多个变量,对每个变量分别设置起始值、终止值、运动次数和运动频率;由三种动画类型和两种动画序列进行组合,总体实现流程如图1所示,图1示出了根据本发明一个实施例的动画显示流程示意图。
一种基于参数的动画按钮装置,它包括:
序列判断模块,用于判断扩展动画序列类型是串行或并行;
计算模块,用于并行动画中,计算多个变量的运动间隔的最大公因子,作为同步的基准间隔;以及分别计算出每个变量在基准间隔下的实际运动步长及所需的运动次数;
动画类型执行模块,用于根据的动画的类型执行相应的一次并行,或重复并行,或往复并行,或一次串行,或重复串行,或往复串行的动画流程。
参见图1所示,一种基于参数的动画按钮装置显示的方法,它包括:
ⅰ)开始播放时,判断该动画的序列类型,若是并行动画,则进入第ⅱ)步;若是串行动画则进入第ⅳ)步;
ⅱ)并行动画中,计算多个变量的运动间隔的最大公因子,作为同步的基准间隔;
ⅲ)分别计算出每个变量在步骤ⅱ)计算出的基准间隔下的实际运动步长及所需的运动次数;
ⅳ)根据动画的类型执行相应的一次并行,或重复并行,或往复并行,或一次串行,或重复串行,或往复串行的动画流程。
基于示例的说明:
a.计算实际间隔:通过计算所有变量的运动间隔GCD(最大公因子),作为并行运动时的各个变量的同步时钟间隔;
b.分别计算各个变量运动的增量,公式如下:
其中:endVal,变量运动的终止值;
startVal,变量运动的起始值;
realTimer,上面步骤计算的实际间隔;
userNum,用户预设的运动次数;
userTimer,用户预设的时间间隔;
c.分别计算每个变量在新的时间间隔和增量,计算实际的运动次数:
num=(endVal-startVal)/realStep。
由以上可知,由三种动画类型和两种动画序列进行组合,最终可得到六种动画效果,下面分别详细描述各个动画具体实现过程:
如图2所示,图2示出了根据本发明一个实施例的一次并行运动流程示意图,一次并行运动的具体流程:
1、将全局计数sysCount置为0;
2、将标识当前变量对象的下标i置为0,并将动画结束标识符isEnd置为true;
3、判断全局计数是否小于当前第i个变量的运动次数,如果是则跳转至第6步;
4、将动画结束标识符isEnd置为false,表示还有变量没有完成的动画;
5、计算并修改第i个变量的值,计算方法为当前变量的值加上当前变量的增量;
6、标识变量下标的变量i++;
7、判断i是否小于变量的总数量-1,如果否则跳转至第3步;
8、判断isEnd是否为false,如果是则跳转至第9步,否则跳转至第11步;
9、全局计数sysCount++;
10、等待realTimer的时间间隔后,跳转至第2步;
11、结束。
说明:sysCount,当前系统的运动次数计数;标识总运动次数的全局计数自增1;
i,变量数组的索引;i++,标识变量下标的计数自增1;
isEnd,标识是否所有变量都完成运动;
varis,变量对象数组;
varis[i].num,用户预设的第i个变量应运动的次数;
varis[i].val,当前变量的值,其计算方式为:
vairs[i].val+vairs[i].step(步长)。
如图3所示,图3示出了根据本发明一个实施例的重复并行运动流程示意图,重复并行运动的具体流程:
1.将全局计数sysCount置为0;
2.将标识当前变量对象的下标i置为0;
3.判断sysCount与第i个变量的运动次数取模是否等于0,如果是则跳转至第5步,否则跳转至第4步;
4.计算并修改第i个变量的值,计算方法为当前变量的值加上当前变量的增量;
5.将第i个变量的值置为变量的起始值;
6.全局计数sysCount++;
7.判断i是否小于变量的数量-1,如果是则跳转至第9步,如果否则跳转至第8步;
8.变量下标i++,并跳转至第3步;
9.等待realTimer的时间间隔后,跳转至第2步。
如图4所示,图4示出了根据本发明一个实施例的往复并行运动流程示意图,往复并行运动的具体流程:
1.将全局计数sysCount置为0;
2.将标识当前变量对象的下标i置为0;
3.判断sysCount与第i个变量的运动次数取模是否等于0,如果是则跳转至第5步,否则跳转至第4步;
4.计算并修改第i变量的值,计算方法为当前变量的值加上当前变量的增量;
5.将第i个变量的步长取反;
6.全局计数sysCount++;
7.判断i是否小于变量的数量-1,如果是则跳转至第9步,如果否则跳转至第8步;
8.变量下标i++,并跳转至第3步;
9.等待realTimer的时间间隔后,跳转至第2步。
如图5所示,图5示出了根据本发明一个实施例的一次串行运动流程示意图,一次串行运动的具体流程:
1.将标识当前变量对象的下标i置为0;
2.将全局计数器sysCount置为0,并将第i个变量的值置为起始值;
3.判断sysCount与第i个变量的运动次数取模值是否等于0,如果是则跳转至第6步,如果否则跳转至第4步;
4.计算并修改当前变量的值,计算方法为当前变量的值加上当前变量的增量;
5.全局计数sysCount++,并跳转至第9步;
6.判断i是否小于变量的数量-1,如果是则跳转至第7步,如果否则跳转至第8步;
7.下标i++,跳转至第2步;
8.结束;
9.等待第i个变量的时间间隔后,跳转至第3步;
说明:i,指定当前正在运动的变量在数组的索引;
sysCount,当前变量运动的次数计数;
varis[i].val,第i个变量当前值;
varis[i].num,第i个变量动画的起始值;
varis[i].step,第i个变量设定的步长。
如图6所示,图6示出了根据本发明一个实施例的重复串行运动流程示意图,重复串行运动的具体流程:
1.将标识当前变量对象的下标i置为0;
2.将全局计数器sysCount置为0,并将第i个变量的值置为起始值;
3.判断sysCount与第i个变量的运动次数取模值是否等于0,如果是则跳转至第6步,如果否则跳转至第4步;
4.计算并修改当前变量的值,计算方法为当前变量的值加上当前变量的增量;
5.全局计数sysCount++,并跳转至第8步;
6.判断i是否小于变量的数量-1,如果是则跳转至第7步,如果否则跳转至第8步;
7.下标i++,跳转至第2步;
8.等待第i个变量的时间间隔后,跳转至第3步。
如图7所示,图7示出了根据本发明一个实施例的反复串行运动流程示意图,反复串行运动的具体流程:
1.将标识变量的下标i置为0;
2.将全局计数sysCount置为0,第i个变量的值置为起始值;
3.判断sysCount与第i个变量的预运动次数取模是否等于0,如果是则跳转至第4步,如果否则跳转至第9步;
4.将第i个变量的步长取反;
5.将第i个变量的起始值置为第i个变量当前值;
6.判断i是否小于变量的数量-1,如果是则跳转至第7步,如果否则跳转至第8步;
7.标识变量的下标i++,并跳转至第2步;
8.跳转至第1步;
9.计算并修改当前变量的值,计算方法为当前变量的值加上当前变量的增量;
10.全局计数sysCount++;
11.等待第i个变量的时间间隔后,跳转至第3步。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似部分相互参见即可。
在本说明书中所谈到的“一个实施例”、“另一个实施例”、“实施例”、等,指的是结合该实施例描述的具体特征、结构或者特点包括在本申请概括性描述的至少一个实施例中。在说明书中多个地方出现同种表述不是一定指的是同一个实施例。进一步来说,结合任一实施例描述一个具体特征、结构或者特点时,所要主张的是结合其他实施例来实现这种特征、结构或者特点也落在本发明的范围内。
尽管这里参照本发明的多个解释性实施例对本发明进行了描述,但是,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。更具体地说,在本申请公开和权利要求的范围内,可以对主题组合布局的组成部件和/或布局进行多种变型和改进。除了对组成部件和/或布局进行的变型和改进外,对于本领域技术人员来说,其他的用途也将是明显的。