本发明涉及数据处理技术领域,具体地,涉及一种基于android的太极循环指标绘制方法及系统。
背景技术:
太极循环是近来金融市场的新兴指标,是依托量化交易平台,采集金融市场多年实盘数据形成的程序化自动识别交易信号指标。
然而,太极循环中又包含各类不同指标,需要用不同的方式进行绘制显示,要在安卓系统应用这些不同的指标目前还存在的技术难题包括:如何准确绘制显示各种指标,以及如何制作各种指标的显示效果。
技术实现要素:
针对现有技术中的缺陷,本发明的目的是提供一种基于android的太极循环指标绘制方法及系统。
根据本发明提供的一种基于android的太极循环指标绘制方法,包括:太极循环动能图绘制步骤、太极循环市场情绪表绘制步骤、太极循环市场情绪条绘制步骤以及太极循环主图绘制步骤中的任一个或任多个步骤。
较佳的,所述太极循环动能图绘制步骤包括:
步骤101、根据正弦函数:
步骤102、根据所采集太极循环所需要绘制的圆范围,对画布进行第一步圆形裁剪,裁剪之后所有的绘制内容均显示在半径为r1圆形范围之内,随后进行二次裁剪,在同样的圆心下,依照半径r2,r2<r1,再次对画布进行裁剪操作,二次裁剪后,所有的绘制效果均会显示内圆半径为r2、外圆半径为r1的圆环上;
步骤103、用android的objectanimator类创建线性动画,修改shader在x轴上的偏移量,使偏移量在不断重绘的过程中达到动画所需的效果;
步骤104、根据所采集太极循环的动能计算结果,使shader在y轴上产生对应的偏移量,展现不同的太极循环动能图的数值。
较佳的,所述太极循环市场情绪表绘制步骤包括:
步骤201、利用canvas的drawarc,在视图的圆心位置,从角度167°绘制一个角度为206°的灰色扇形;
步骤202、将太极循环市场情绪表的位图绘制在灰色扇形之上,圆心保持一致;
步骤203、根据计算获得的市场情绪指标值来绘制对应的太极循环市场情绪表,依次将取值范围0~100映射至角度0°到206°,从而得到需要绘制的角度值λ,然后利用android的sweepgradient绘制对应角度的渐变扇形,圆心同样与灰色扇形一致;
步骤204、将canvas按照圆心位置旋转λ°,将太极循环市场情绪表的指针绘制在圆心位置,并使用canvas的还原技术将canvas还原。
较佳的,所述太极循环市场情绪条绘制步骤包括:
步骤301、利用android的layer-list技术,分别将两张市场情绪条的位图进行叠加,底层为遮罩层,上层为的展示层,并将裁剪方向设置为水平;
步骤302、根据计算获得的市场情绪指标值,利用android的drawable的setlevel来动态改变展示层的显示部分的长度;
步骤303、利用canvas在当前的显示部分的长度上绘制指针的位图。
较佳的,所述两张市场情绪条的位图一张为遮罩层,呈现深色,另一张为展示层,呈现亮色。
较佳的,所述太极循环主图绘制步骤包括:
步骤401、将接收到的数据进行组装,通过循环按照时间点的条件进行组装数据,组装后的数据包含k线数据,上下轨数据与买卖点数据;
步骤402、根据用户设置的k线缩放范围,选取对应的数据;
步骤403、绘制上轨线、下轨线以及120根k线的均线,通过android的path类,将需要绘制的列点通过path类的lineto连接,随后将path绘制在canvas上;
步骤404、绘制阴影部分,循环当前屏幕范围的每一根k线,若k线的最低值在120根k线之上,那么k线所在点到上轨线之间的范围绘制红色渐变阴影;若k线的最高值在ma120之下,则k线所在点到下轨线之间绘制绿色渐变阴影;若120根k线不存在则不绘制阴影;
步骤405、根据买卖点数据,将对应的不同太极位图加载并绘制在canvas上;
步骤406、根据k线数据绘制蜡烛图,分别绘制不同的蜡烛图图样。
根据本发明提供的一种基于android的太极循环指标绘制系统,包括:太极循环动能图绘制子系统、太极循环市场情绪表绘制子系统、太极循环市场情绪条绘制子系统以及太极循环主图绘制子系统中的任一个或任多个子系统。
较佳的,所述太极循环动能图绘制子系统包括:
预着色模块:根据正弦函数:
裁剪模块:根据所采集太极循环所需要绘制的圆范围,对画布进行第一步圆形裁剪,裁剪之后所有的绘制内容均显示在半径为r1圆形范围之内,随后进行二次裁剪,在同样的圆心下,依照半径r2,r2<r1,再次对画布进行裁剪操作,二次裁剪后,所有的绘制效果均会显示内圆半径为r2、外圆半径为r1的圆环上;
线性动画创建模块:用android的objectanimator类创建线性动画,修改shader在x轴上的偏移量,使偏移量在不断重绘的过程中达到动画所需的效果;
数值展现模块:根据所采集太极循环的动能计算结果,使shader在y轴上产生对应的偏移量,展现不同的太极循环动能图的数值。
较佳的,所述太极循环市场情绪表绘制子系统包括:
灰色扇形绘制模块:利用canvas的drawarc在视图的圆心位置,从角度167°绘制一个角度为206°的灰色扇形;
位图绘制模块:将太极循环市场情绪表的位图绘制在灰色扇形之上,圆心保持一致;
渐变扇形绘制模块:根据计算获得的市场情绪指标值来绘制对应的太极循环市场情绪表,依次将取值范围0~100映射至角度0°到206°,从而得到需要绘制的角度值λ,然后利用android的sweepgradient绘制对应角度的渐变扇形,圆心同样与灰色扇形一致;
指针绘制模块:将canvas按照圆心位置旋转λ°,将太极循环市场情绪表的指针绘制在圆心位置,并使用canvas的还原技术将canvas还原。
较佳的,所述太极循环市场情绪条绘制子系统包括:
位图叠加模块:利用android的layer-list技术,分别将两张市场情绪条的位图进行叠加,底层为遮罩层,上层为的展示层,并将裁剪方向设置为水平;
展示层长度改变模块:根据计算获得的市场情绪指标值,利用android的drawable的setlevel来动态改变展示层的显示部分的长度;
指针绘制模块:利用canvas在当前的显示部分的长度上绘制指针的位图。
较佳的,所述太极循环主图绘制子系统包括:
数据组装模块:将接收到的数据进行组装,通过循环按照时间点的条件进行组装数据,组装后的数据包含k线数据,上下轨数据与买卖点数据;
数据选取模块:根据用户设置的k线缩放范围,选取对应的数据;
path绘制模块:绘制上轨线、下轨线以及120根k线的均线,通过android的path类,将需要绘制的列点通过path类的lineto连接,随后将path绘制在canvas上;
阴影绘制模块:绘制阴影部分,循环当前屏幕范围的每一根k线,若k线的最低值在120根k线之上,那么k线所在点到上轨线之间的范围绘制红色渐变阴影;若k线的最高值在ma120之下,则k线所在点到下轨线之间绘制绿色渐变阴影;若120根k线不存在则不绘制阴影;
太极位图绘制模块:根据买卖点数据,将对应的不同太极位图加载并绘制在canvas上;
蜡烛图绘制模块:根据k线数据绘制蜡烛图,分别绘制不同的蜡烛图图样。
与现有技术相比,本发明具有如下的有益效果:
本发明可以准确绘制显示太极循环的各种指标,并且具有较佳的显示效果。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的界面效果示意图;
图2为本发明的结构示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明提供的一种基于android的太极循环指标绘制方法,包括:太极循环动能图绘制步骤、太极循环市场情绪表绘制步骤、太极循环市场情绪条绘制步骤以及太极循环主图绘制步骤中的任一个或任多个步骤。
参考图1所示,太极循环动能图绘制步骤是利用shader技术对canvas所需的paint进行预着色,使其能够绘制出正确的正弦曲线波纹以及颜色渐变效果,随后通过太极循环算法计算的记过值,对shader进行matrix位置变换,使其能借助paint绘制在canvas的正确位置上,具体包括:
步骤101、根据正弦函数:
步骤102、根据所采集太极循环所需要绘制的圆范围,对画布进行第一步圆形裁剪,裁剪之后所有的绘制内容均显示在半径为r1圆形范围之内,随后进行二次裁剪,在同样的圆心下,依照半径r2,r2<r1,再次对画布进行裁剪操作,二次裁剪后,所有的绘制效果均会显示内圆半径为r2、外圆半径为r1的圆环上;
步骤103、用android的objectanimator类创建线性动画,修改shader在x轴上的偏移量,使偏移量在不断重绘的过程中达到动画所需的效果;
步骤104、根据所采集太极循环的动能计算结果,使shader在y轴上产生对应的偏移量,展现不同的太极循环动能图的数值。
太极循环市场情绪表绘制步骤包括:
步骤201、利用canvas的drawarc,在视图view的圆心位置,从角度167°绘制一个角度为206°的灰色扇形;
步骤202、将太极循环市场情绪表的位图(bitmap)绘制在灰色扇形之上,圆心保持一致;
步骤203、根据计算获得的市场情绪指标值来绘制对应的太极循环市场情绪表,依次将取值范围0~100映射至角度0°到206°,从而得到需要绘制的角度值λ,然后利用android的sweepgradient绘制对应角度的渐变扇形,圆心同样与灰色扇形一致;
步骤204、将canvas按照圆心位置旋转λ°,将太极循环市场情绪表的指针绘制在圆心位置,并使用canvas的还原技术将canvas还原,避免影响之后的绘制操作。
太极循环市场情绪条绘制步骤包括:
步骤301、利用android的layer-list技术,分别将两张市场情绪条的位图(两张市场情绪条的位图一张为遮罩层,呈现深色,另一张为展示层,呈现亮色)进行叠加,底层为遮罩层,上层为的展示层,并将裁剪方向设置为水平;
步骤302、根据计算获得的市场情绪指标值,利用android的drawable的setlevel来动态改变展示层的显示部分的长度;
步骤303、利用canvas在当前的显示部分的长度上绘制指针的位图。
太极循环主图绘制步骤同样利用了android的canvas相关技术实现,首先通过socket连接向后台查询太极循环相关买卖点的信息buy_point,sell_point、上下轨信息hi,low、120根(均线计算单位)均线信息,与k线信息,在手机端收到服务器的反馈结果之后,将数据进行组装,随后通过canvas对数据进行映射绘制在手机上,具体包括:
步骤401、将接收到的数据进行组装,通过循环按照时间点的条件进行组装数据,组装后的数据包含k线数据,上下轨数据与买卖点数据;
步骤402、根据用户设置的k线缩放范围,选取对应的数据;
步骤403、绘制上轨线、下轨线以及120根k线(均线计算单位)的均线,通过android的path类,将需要绘制的列点通过path类的lineto连接,随后将path绘制在canvas上;
步骤404、绘制阴影部分,循环当前屏幕范围的每一根k线,若k线的最低值在120根k线之上,那么k线所在点到上轨线之间的范围绘制红色渐变阴影;若k线的最高值在ma120之下,则k线所在点到下轨线之间绘制绿色渐变阴影;若120根k线不存在则不绘制阴影;
步骤405、根据买卖点数据,将对应的不同太极位图加载并绘制在canvas上;
步骤406、根据k线数据绘制蜡烛图,分别绘制不同的蜡烛图图样。
如图2所示,在上述一种基于android的太极循环指标绘制方法的基础上,本发明还提供一种基于android的太极循环指标绘制系统,包括:太极循环动能图绘制子系统、太极循环市场情绪表绘制子系统、太极循环市场情绪条绘制子系统以及太极循环主图绘制子系统中的任一个或任多个子系统。
所述太极循环动能图绘制子系统包括:
预着色模块:根据正弦函数:
裁剪模块:根据所采集太极循环所需要绘制的圆范围,对画布进行第一步圆形裁剪,裁剪之后所有的绘制内容均显示在半径为r1圆形范围之内,随后进行二次裁剪,在同样的圆心下,依照半径r2,r2<r1,再次对画布进行裁剪操作,二次裁剪后,所有的绘制效果均会显示内圆半径为r2、外圆半径为r1的圆环上;
线性动画创建模块:用android的objectanimator类创建线性动画,修改shader在x轴上的偏移量,使偏移量在不断重绘的过程中达到动画所需的效果;
数值展现模块:根据所采集太极循环的动能计算结果,使shader在y轴上产生对应的偏移量,展现不同的太极循环动能图的数值。
太极循环市场情绪表绘制子系统包括:
灰色扇形绘制模块:利用canvas的drawarc在视图的圆心位置,从角度167°绘制一个角度为206°的灰色扇形;
位图绘制模块:将太极循环市场情绪表的位图绘制在灰色扇形之上,圆心保持一致;
渐变扇形绘制模块:根据计算获得的市场情绪指标值来绘制对应的太极循环市场情绪表,依次将取值范围0~100映射至角度0°到206°,从而得到需要绘制的角度值λ,然后利用android的sweepgradient绘制对应角度的渐变扇形,圆心同样与灰色扇形一致;
指针绘制模块:将canvas按照圆心位置旋转λ°,将太极循环市场情绪表的指针绘制在圆心位置,并使用canvas的还原技术将canvas还原。
太极循环市场情绪条绘制子系统包括:
位图叠加模块:利用android的layer-list技术,分别将两张市场情绪条的位图进行叠加,底层为遮罩层,上层为的展示层,并将裁剪方向设置为水平;
展示层长度改变模块:根据计算获得的市场情绪指标值,利用android的drawable的setlevel来动态改变展示层的显示部分的长度;
指针绘制模块:利用canvas在当前的显示部分的长度上绘制指针的位图。
太极循环主图绘制子系统包括:
数据组装模块:将接收到的数据进行组装,通过循环按照时间点的条件进行组装数据,组装后的数据包含k线数据,上下轨数据与买卖点数据;
数据选取模块:根据用户设置的k线缩放范围,选取对应的数据;
path绘制模块:绘制上轨线、下轨线以及120根k线的均线,通过android的path类,将需要绘制的列点通过path类的lineto连接,随后将path绘制在canvas上;
阴影绘制模块:绘制阴影部分,循环当前屏幕范围的每一根k线,若k线的最低值在120根k线之上,那么k线所在点到上轨线之间的范围绘制红色渐变阴影;若k线的最高值在ma120之下,则k线所在点到下轨线之间绘制绿色渐变阴影;若120根k线不存在则不绘制阴影;
太极位图绘制模块:根据买卖点数据,将对应的不同太极位图加载并绘制在canvas上;
蜡烛图绘制模块:根据k线数据绘制蜡烛图,分别绘制不同的蜡烛图图样。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。