发明内容
基于此,有必要针对上述问题,提供一种波形绘制方法、装置、计算机设 备及可读存储介质。
一种波形绘制方法,所述方法包括:
根据数据点采样率和水平缩放因子确定单位像素数据点量,其中,所述水 平缩放因子是指波形显示区域内单位时长的波形沿横轴方向占用的像素点数 量,所述单位像素数据点量是指每个像素点代表的数据点数量;
若所述单位像素数据点量大于第一预设阈值,则以所述单位像素数据点量 为单位,将待绘制的波形中的多个数据点划分为多个数据集;
根据所述单位像素数据点量分别在每个数据集中抽取数量小于所述单位像 素数据点量的等量数据点,并根据抽取得到的数据点绘制所述波形。
在其中一个实施例中,所述根据所述单位像素数据点量分别在每个数据集 中抽取数量小于所述单位像素数据点量的等量数据点,并根据抽取得到的数据 点绘制所述波形,包括:若所述单位像素数据点量小于或等于第二预设阈值, 则分别在所述每个数据集中抽取最大数据点和最小数据点;
分别绘制所述每个数据集中的最大数据点与最小数据点之间的连接的垂 线,以得到所述每个数据集各自对应的垂线;
将所述每个数据集各自对应的所述垂线逐一连接绘制形成所述波形。
在其中一个实施例中,所述根据所述单位像素数据点量分别在每个数据集 中抽取数量小于所述单位像素数据点量的等量数据点,并根据抽取得到的数据 点绘制所述波形,包括:
若所述单位像素数据点量大于第二预设阈值,则分别在所述每个数据集中 抽取一个目标数据点,其中,相邻的两个所述目标数据点之间的数据点间隔量 等于所述单位像素数据点量;
将所述目标数据点逐一连接绘制形成所述波形。在其中一个实施例中,所 述方法还包括:
若所述单位像素数据点量小于或等于所述第一预设阈值,则将所述多个数 据点逐一连接绘制形成所述波形。
在其中一个实施例中,所述根据数据点采样率和水平缩放因子确定单位像 素数据点量,包括:
根据所述波形显示区域沿横轴方向的像素值和所述波形显示区域所能显示 波形的总时长,确定所述水平缩放因子;
计算所述数据点采样率与所述水平缩放因子的比值,得到所述单位像素数 据点量。
在其中一个实施例中,所述根据所述波形显示区域沿横轴方向的像素值和 所述波形显示区域所能显示波形的总时长,确定所述水平缩放因子,包括:
计算所述波形显示区域沿横轴方向的总像素值与所述波形显示区域所能显 示波形的总时长的比值,得到所述水平缩放因子。
在其中一个实施例中,所述方法还包括:
计算所述波形各个点的波形横坐标;
计算所述波形各个点的波形纵坐标;
根据所述波形横坐标和所述波形纵坐标,对所述波形进行显示。
在其中一个实施例中,所述计算所述波形各个点的波形横坐标,包括:
计算所述波形各个点对应的数据时间和所述波形显示区域的起始时间的差 值,得到第一差值;
计算所述第一差值与所述水平缩放因子的乘积,得到所述波形各个点的波 形横坐标。
在其中一个实施例中,所述计算所述波形各个点的波形纵坐标,包括:
计算所述波形各个点的数据值与垂直缩放因子的乘积,得到所述波形各个 点的波形纵坐标,所述垂直缩放因子是指所述波形显示区域内单位数据值的波 形沿纵轴方向占用的像素点数量。
在其中一个实施例中,所述计算所述波形各个点的数据值与垂直缩放因子 的乘积,得到所述波形各个点的波形纵坐标之前,还包括:
计算所述波形的最大数据值和最小数据值之间的差值,得到纵向差值;
计算所述波形显示区域沿纵轴方向的总像素值与所述纵向差值的比值,得 到所述垂直缩放因子。
在其中一个实施例中,所述波形的数量为多个,所述方法还包括:
获取每个波形的色度分量,其中,每个波形的色度分量不同;
根据所述每个波形的色度分量建立所述每个波形各自对应的HSV颜色模型;
将所述每个波形各自对应的HSV颜色模型转换为RGB颜色模型,以得到所 述每个波形各自对应的RGB颜色模型;
根据所述每个波形各自对应的RGB颜色模型对所述波形进行显示。
在其中一个实施例中,所述获取所述每个波形的色度分量,包括:
计算总色度与所述波形的数量的比值,得到单位色度分量;
对多个所述波形进行编号,根据预设的对应规则,获取编号后的每个波形 各自对应的色度分量,使得显示相邻的两个波形之间的色度分量的差值大于所 述单位色度分量。
根据所述波形显示区域所能显示的总时长和所述波形显示区域沿横轴方向 的像素值,确定单位像素时长,其中,所述单位像素时长是指每个像素点代表 的时间长度;
根据所述单位像素时长和预设的最小刻度像素值计算最小时间间隔值;
根据所述最小时间间隔值确定所述时间标尺的单位刻度间隔和主刻度间 隔;
根据所述单位刻度间隔和所述主刻度间隔绘制所述时间标尺。
在其中一个实施例中,所述方法还包括:
获取所述时间标尺各个刻度的刻度横坐标;
获取所述时间标尺各个刻度的刻度纵坐标;
根据所述刻度横坐标和所述刻度纵坐标,对所述时间标尺进行显示。
在其中一个实施例中,所述获取所述时间标尺各个刻度的刻度横坐标,包 括:
计算所述时间标尺各个刻度对应的刻度对应时间与所述波形显示区域的起 始时间的差值,得到第二差值;
计算所述第二差值与所述水平缩放因子的乘积,得到所述刻度横坐标。
一种波形绘制装置,用于将多个数据点绘制形成波形,所述波形绘制装置 包括:
单位像素数据点量确定模块,用于根据数据点采样率和水平缩放因子确定 单位像素数据点量,其中,所述水平缩放因子是指波形显示区域内单位时长的 波形沿横轴方向占用的像素点数量,所述单位像素数据点量是指每个像素点代 表的数据点数量;
数据集划分模块,用于若所述单位像素数据点量大于第一预设阈值,则以 所述单位像素数据点量为单位,将待绘制的波形中的多个数据点划分为多个数 据集;
波形绘制模块,用于根据所述单位像素数据点量分别在每个数据集中抽取 数量小于所述单位像素数据点量的等量数据点,并根据抽取得到的数据点绘制 所述波形。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序, 所述处理器执行所述计算机程序时实现如上所述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处 理器执行时实现如上所述的方法的步骤。
本申请实施例中提供的波形绘制方法、装置、计算机设备及可读存储介质, 根据数据点采样率和水平缩放因子确定单位像素数据点量,并在单位像素数据 点量单位像素数据点量大于第一预设阈值时,以单位像素数据点量为单位,将 多个数据点划分为多个数据集,并根据单位像素数据点量分别在每个数据集中 抽取数量小于单位像素数据点量的等量数据点,并根据抽取得到的数据点绘制所述波形。本申请实施例提供的波形绘制方法、装置、计算机设备及可读存储 介质,能够在数据点较多的时候,将多个数据点形成数据集,并从每个数据集 中抽取数据点代表此数据集的波形,由于从每个数据集中抽取的数据点的数量 小于单位像素数据点量,使得绘制波形时数据获取量小,能够有效节约程序运 行时间和内存开销。同时,本申请实施例提供的波形绘制方法、装置、计算机 设备及可读存储介质能够结合当前水平缩放因子进行波形绘制,实时性强。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,通过下述实施例并 结合附图,对本申请实施例中的技术方案的进一步详细说明。应当理解,此处 所描述的具体实施例仅用以解释本申请,并不用于限定申请。
本申请提供的波形绘制方法,可以用于对电路仿真数据或传感器采集的数 据进行绘制,形成波形文件,并对波形进行显示,以使用户直观的观测到波形 的形态。本申请实施例提供的方法绘制成的波形为二维波形,包括横轴和纵轴。 横轴可以为表征时间的轴,纵轴可以为表征数据点数据值的轴。
本申请提供的波形绘制方法可以通过计算机设备实现。计算机设备包括但 不限于个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。 电路仿真数据或传感器采集的数据可以实时获取,可以预先存储于计算机设备 的存储器中。本申请提供的波形绘制方法可以通过Python实现,也可以应用于其他软件,通过其他编程语言实现波形绘制。
请参见图1,本申请一个实施例提供一种波形绘制方法,用于将多个数据点 绘制成波形,所述方法包括:
S110,根据数据点采用率Rs和水平缩放因子Zh确定单位像素数据点量Dc, 其中,水平缩放因子Zh是指波形显示区域内单位时长的波形沿横轴方向占用的 像素点数量,单位像素数据点量Dc是指每个像素点代表的数据点数量。
数据采样率Rs是指数据点的采样频率,即单位时间内数据点的数量,数据 采样率Rs的单位可以为Hz。水平缩放因子Zh可以是波形显示区域内1秒钟波 形在横轴方向占用的像素点数量。其中,波形显示区域是指用于显示波形和/或 时间标尺的显示区域。水平缩放因子Zh能够表征用户对显示画面沿水平方向缩放变化的需求。水平缩放因子Zh可以通过用户输入的缩放倍数等进行计算得到, 例如,用户通过滚动鼠标滚轮输入缩放倍数,计算机设备根据缩放倍数通过预 设的算法计算得到水平缩放因子Zh。单位像素数据点量Dc是通过数据采样率 Rs和水平缩放因子Zh计算得到,可选的,可以通过数据采样率Rs与水平缩放因子Zh的缩放因子的比值得到单位像素数据点量Dc,即,单位像素数据点量 Dc=Rs/Zh。单位像素点量Dc用于表征在当前水平缩放因子Zh下,波形显示时, 每个像素点要代表或显示的数据点的数量。
S120,若单位像素数据点量Dc大于第一预设阈值,则以单位像素数据点量 为单位,将待绘制的波形中的多个数据点划分为多个数据集。
第一预设阈值可以根据计算机设备的硬件资源情况进行设定。例如,第一 预设阈值可以为2、3、4、5、6、7、8等。在一个具体的实施例中,第一预设 阈值为1。当单位像素数据点量Dc大于1时,将所有数据点每Dc个划分为一个 数据集,形成多个数据集。
S130,根据单位像素数据点量Dc分别在每个数据集中抽取数量小于单位像 素数据点量Dc的等量数据点,并根据抽取得到的数据点绘制波形。
将数据点划分为多个数据集后,从每个数据集中抽取数据点,每个数据集 抽取数据点的个数可以根据需求以及单位像素数据点量Dc的具体情况设定,每 个数据集抽取的数据点的个数小于单位像素数据点量,也即少于数据集中数据 的总个数。例如,可以抽取每个数据集中的1个或2个数据点作为代表点,根 据抽取得的数据点进行绘制,形成波形。根据抽取得到的数据点进行波形绘制 的方法也可以有多种,例如,可以直接将绘制的波形连接,绘制为波形;也可 以将抽取的数据点值取平均值,以平均值对应的点为绘制点,对波形进行绘制; 还可以将抽取的数据点连线,绘制形成的连线的垂线等形成波形。本申请对抽取数据点的具体个数,以及根据抽取的数据点进行绘制形成波形的具体方法不 做限定,可以根据实际需求选择。
本实施例中提供的波形绘制方法根据数据点采样率和水平缩放因子确定单 位像素数据点量,并在单位像素数据点量单位像素数据点量大于第一预设阈值 时,以单位像素数据点量为单位,将多个数据点划分为多个数据集,并根据单 位像素数据点量分别在每个数据集中抽取数量小于单位像素数据点量的等量数 据点,并根据抽取得到的数据点绘制所述波形。本实施例提供的波形绘制方法,能够在数据点较多的时候,将多个数据点形成数据集,并从每个数据集中抽取 数据点代表此数据集的波形,由于从每个数据集中抽取的数据点的数量小于单 位像素数据点量,使得绘制波形时数据获取量小,能够有效节约程序运行时间 和内存开销。
请参见图2和图3,在一个实施例中,作为当单位像素数据点大于第一预设 阈值,且小于或等于第二预设阈值时的一种可能的情况,S130包括:
S131A,若所述单位像素数据点量大于第一预设阈值,且小于或等于第二预 设阈值,则分别在每个数据集中抽取最大数据点和最小数据点。
第二预设阈值的具体值也可以根据计算机设备的硬件资源情况进行设定。 例如,第二预设阈值为200、271、310等。在一个具体的实施例中,第二预设 阈值可以为300。当单位像素数据点量Dc大于1,小于等于300时,分别在每 个数据集中抽取最大数据点和最小数据点。
最大数据点是指当前数据集中纵轴值对应的值最大的数据点。最小数据点 是指当前数据集中纵轴值对应的值最小的数据点。计算机设备将每个数据集中 的数据点进行筛选,找到纵轴值最大的数据点和纵轴值最小的数据点。
S132A,分别绘制每个数据集中的最大数据点与最小数据点之间的连接的垂 线,以得到每个数据集各自对应的垂线。
将最大数据点和最小数据点连线,并作出与此连线垂直的直线,即作出此 连线的垂线。每个数据集的波形用此垂线表示。
S133A,将每个数据集对应的垂线逐一连接绘制形成波形。
各个数据集的垂线连接即形成波形,请参见图3。由于单位像素数据点量 Dc的值相对较大,也就是每个像素点代表的数据点数量比较大,用数据集的代 表点或代表线段代表数据集中的所有数据的波形,显示于一个像素上,并不会 造成波形的失真。而将多个数据点划分为多个数据集,通过多个数据集形成波形,无需对所有数据点进行绘制,能够大大减少波形的绘制时间和程序,因此 可以减少内存开销,提高波形绘制效率。
本实施例中,在单位像素数据点量单位像素数据点量大于第一预设阈值, 且小于等于第二预设阈值时,以单位像素数据点量为单位,每个数据集中的最 大数据点和最小数据点,绘制最大数据点和最小数据点的连线的垂线,将每个 数据集对应的垂线连接形成波形。本实施例提供的波形绘制方法,能够在数据 点较多的时候,通过将数据集中的最大数据点和最小数据点连接,用最大数据点和最小数据点连线的垂线代表此数据集的波形,方法简单,数据获取量小, 能够有效节约程序运行时间和内存开销。同时,通过最大数据和最小数据连线 的垂线代表数据集的波形,获取的波形更有代表性,绘制出的波形准确度高,不失真,提高波形绘制和显示效果。
请参见图2和图4,在一个实施例中,作为当单位像素数据点大于第一预设 阈值,且单位像素数据点大于第二预设阈值时的一种可能的情况,S130包括:
S131B,若单位像素数据点量大于第二预设阈值,则分别在每个数据集中抽 取一个目标数据点,其中,相邻的两个目标数据点之间的数据点间隔量等于单 位像素数据点量;
S132B,将目标数据点逐一连接绘制形成波形。
以第二预设阈值为300,单位像素数据点量Dc为400为例,单位像素数据 点量Dc400大于300,在多个数据点中,每隔400个数据点抽取一个数据点,将 抽取的数据点逐一连接绘制形成波形。例如,抽取第1个数据点、第401个数 据点、第801个数据点、第1201个数据点……将这些数据点逐一连接,绘制形 成波形,如图5所示。每隔400个数据点,抽取一个数据点作为代表点,将各 代表点连接,绘制形成波形,无需对所有数据点进行绘制,能够大大减少波形 的绘制时间和程序,因此可以减少内存开销,提高波形绘制效率。同时,由于单位像素数据点量Dc的值相对较大,也就是每个像素点代表的数据点数量比较 大,用数据集的代表点或代表线段代表数据集中的所有数据的波形,显示于一个像素上,并不会因为波形的失真。
请参见图2和图5,在一个实施例中,所述方法还包括:
S140,若单位像素数据点量Dc小于等于第一预设阈值,则将多个数据点逐 一连接绘制形成波形。
当单位像素数据点量Dc小于等于1时,也就是说,每个像素点代表1个数 据点,或多个像素点代表1个数据点,此时,计算机设备直接将多个数据点逐 一连接,绘制成波形,如图5所示。本实施例中,进一步提供在数据较少时绘 制波形的方法。数据较少时,直接将多个数据点逐一连接绘制形成波形,能够 提高波形绘制的准确性,提高波形的显示效果。
根据数据点采样率和水平缩放因子获取单位像素数据点量有多种方法,请 参见图6,在一个实施例中,可以通过以下步骤实现根据数据点采样率和水平缩 放因子获取单位像素数据点量,S110包括:
S111,根据波形显示区域沿横轴方向的像素值和波形显示区域所能显示波 形的总时长确定水平缩放因子Zh。
在一个具体的实施例中,可以通过计算波形显示区域沿横轴方向的总像素 值与波形显示区域所能显示波形的总时长Td的比值,得到水平缩放因子。波形 显示区域沿横轴方向的像素值是指波形显示区域沿横轴方向的像素点的总数 量,也即波形显示区域的宽度W。水平缩放因子Zh可以通过计算波形显示区域 的宽度W与波形显示区域所能显示的总时长Td的比值得到,即Zh=W/Td。可以 理解,水平缩放因子Zh也可以通过Zh=W/Td的变形公式计算得到。在显示装置 确定的情况下,波形显示区域的宽度W可以根据需求设定为固定值。波形显示 区域所能显示的总时长Td可以通过用户输入获得,例如,用户通过滚动鼠标滚 轮输入缩放倍数,计算机设备根据缩放倍数得到当前波形显示区域要显示的总 时长Td。
S112,计算数据点采样率Rs与水平缩放因子Zh的比值,得到单位像素数 据点量Dc。
可以通过公式Dc=Rs/Zh计算得到单位像素数据点量Dc,也可以通过此公式 的变形计算得到单位像素数据点量Dc。
本实施例中,通过获取数据点采样率,根据波形显示区域沿横轴方向的像 素值和波形显示区域所能显示波形的总时长确定水平缩放因子,并计算数据点 采样率与水平缩放因子的比值,得到单位像素数据点量。本实施例提供的计算 单位像素数据点量的方法简单可靠,能够快速获取单位像素数据点量,从而快 速根据不同的单位像素数据点量进行波形绘制,提高波形绘制的效率。
请参见图7,在一个实施例中,所述方法还进一步包括对波形的显示,对形 成的波形进行显示可以通过以下步骤实现:
S151,计算波形各个点的波形横坐标;
S152,计算波形各个点的波形纵坐标;
S153,根据波形横坐标和波形纵坐标对波形进行显示。
通过如上实施例提供的方法步骤绘制得到的波形中包括多个点,每个点对 应包括数据时间和数据值,也就是当前数据点所对应的时间值和数据值。计算 机设备获取绘制的波形的每个点的波形横坐标和波形纵坐标。波形横坐标表征 当前点实际显示时沿横轴方向的位置,波形纵坐标表征当前点实际显示时沿纵 轴方向的位置。根据每个点的波形横坐标和波形纵坐标,将波形的各个点显示于屏幕,使得用户能够直观的观测波形。
请参见图8,在一个实施例中,通过以下步骤计算波形各个点的波形横坐标, 即S151包括:
S1511,计算波形各个点对应的数据时间和波形显示区域的起始时间的差 值,得到第一差值;
S1512,计算第一差值与水平缩放因子的乘积,得到波形各个点的波形横坐 标。
计算机设备获取波形各个点对应的数据时间,并获取波形显示区域的起始 时间。波形显示区域的起始时间是指当前显示界面第一个数据的显示时间。(数 据时间-起始时间)*Zh,即为当前点的波形横坐标。例如,波形第二点对应的 数据时间11:28:32,波形显示区域的起始时间为11:28:30,则,波形第二点的波形横坐标为2S*Zh。
请参见图9,在一个实施例中,通过以下步骤计算波形各个点的波形纵坐标, 即S152包括:
S1521,计算所波形各个点的数据值与垂直缩放因子Zv的乘积,得到波形 各个点的波形纵坐标,垂直缩放因子是指波形显示区域内单位数据值的波形沿 纵轴方向占用的像素点数量。
计算机设备获取波形各个点对应的数据值,并获取垂直缩放因子Zv,将波 形各个点对应的数据值与垂直缩放因子Zv相乘得到波形各个点的纵坐标。也就 是说,数据值*Zv,即为当前点的波形纵坐标。其中,垂直缩放因子Zv能够表征用户对显示画面沿垂直方向缩放变化的需求。垂直缩放因子Zv可以通过用户 输入的缩放倍数等进行计算得到,例如,用户通过滚动鼠标滚轮输入缩放倍数, 计算机设备根据缩放倍数通过预设的算法计算得到垂直缩放因子Zv。
请参见图10,在一个实施例中,可以通过以下步骤获取垂直缩放因子Zv, 即,S1521包括:
S1523,计算波形的最大数据值Vmax和最小数据值Vmin之间的差值,得到 纵向差值;
S1525,计算波形显示区域沿纵轴方向的总像素值与纵向差值的比值,得到 垂直缩放因子Zv。
计算机设备获取波形的最大数据值Vmax、波形的最小数据值Vmin以及波形 显示区域沿纵轴方向的总像素值,根据三者计算得到垂直缩放因子Zv。
波形的最大数据值Vmax是指绘制的波形各点中,纵轴值最大的点对应的数 据值,也即步骤S131A中纵轴值最大的数据点对应的数据值,或步骤S132A中形成的多条垂线中纵轴值最大的数据点对应的数据值,或步骤S130B中抽取的 数据点中纵轴值最大的数据点对应的数据值。波形的最小数据值Vmin是指绘制 的波形各点中,纵轴值最小的点对应的数据值,也即步骤S131A中纵轴值最小 的数据点对应的数据值,或步骤S132A中形成的多条垂线中纵轴值最小的数据 点对应的数据值,或步骤S130B中抽取的数据点中纵轴值最小的数据点对应的 数据值。波形显示区域沿纵轴方向的总像素值是指波形显示区域沿纵轴方向的像素点的总数量,也即波形显示区域的高度H。在显示装置确定的情况下,波形 显示区域的高度H可以根据需求设定为固定值。垂直缩放因子Zv可以通过公式 Zv=H/(Vmax-Vmin)或此公式的变形计算得到。
以上几个实施例中,通过计算垂直缩放因子,并依据垂直缩放因子计算波 形各个点的波形纵坐标,同时,根据水平缩放因子计算波形各个点的波形横坐 标,进一步根据波形横坐标和和波形纵坐标对波形进行显示,波形的显示充分 考虑了缩放比例,将波形压缩或拉伸,使得波形完整的显示在波形显示区域内, 提高显示的准确度,提高了显示效果。
在一个实施例中,当波形的数量为多个,对形成的波形进行显示还进一步 包括对波形颜色的显示,即所述方法还包括:
将多个波形以不同的颜色显示。
多个波形的绘制和显示方法同上述实施例,在此不再赘述。当波形为多个 时,为了提高显示效果,使波形更容易被区分和识别,可以通过将各个波形以 不同的颜色进行显示。
请参见图11,在一个实施例中,将多个波形以不同的颜色显示,可以通过下述步骤实现:
S1541,获取每个波形的色度分量,其中,每个波形的色度分量不同;
S1542,根据每个波形的色度分量建立每个波形各自对应的HSV颜色模型;
S1543,将每个波形各自对应的HSV颜色模型转换为RGB颜色模型,以得到 所述每个波形各自对应的RGB颜色模型;
S1544,根据每个波形各自对应的RGB颜色模型对各波形进行显示。
建立HSV颜色模型时,给每个波形赋予不同的色度分量,从而使得多个波 形以不同的颜色进行显示。将HSV颜色模型转换为RGB颜色模型,可以通过以下公式进行转换:
p=v×(1-s)
q=v×(1-f×s)
t=v×(1-(1-f)×s)
对于每个颜色向量(r,g,b)
请参见图12,在一个实施例中,获取每个波形的色度分量可以通过如下步 骤实现,即S1541包括:
S1546,计算总色度与波形的数量的比值,得到单位色度分量;
S1547,对多个波形进行编号,根据预设的对应规则,获取编号后的每个波 形各自对应的色度分量,使得显示相邻的两个波形之间的色度分量的差值大于 单位色度分量。
总色度为360°,单位色度分量=360°/波形数量。例如,波形数量为4, 则单位色度分量=360°/4=90°。对波形进行编号,例如4个波形的编号分别为 1,2,3,4,且波形显示时,波形按照1,2,3,4的顺序排列。根据预先设定 的对应规则,获取每个编号的波形对应的色度分量。例如,按照预设的对应规则,波形总数为4,则1号波形的色度分量为0°,2号波形的色度分量为180°, 3号波形的色度分量为90°,4号波形的色度分量为270°。如此,相邻的两个 波形之间的色度分量的差值大于单位色度分量90°,从而使得相邻的两个波形 之间的颜色差距比较大,对比更加明显,提高显示效果。
在一个实施例中,波形绘制方法还进一步包括:
绘制时间标尺。
时间标尺是指用于指示对应波形图横轴时间参数的标尺。时间标尺可以包 括刻度轴,还可以进一步包括时间数字。通过绘制时间标尺,方便波形显示时 与横轴的时间形成对应,便于用户监测波形,提高实用性。
请参见图13,在一个实施例中,绘制时间标尺,包括:
S161,根据波形显示区域所能显示的总时长Td和波形显示区域沿横轴方向 的像素值,确定单位像素时长Tp,其中,单位像素时长是指每个像素点代表的 时间长度。
波形显示区域沿横轴方向的像素值即波形显示区域的宽度W。可以通过公式 Tp=Td/W计算得到单位像素时长Tp。
S162,根据单位像素时长和预设的最小刻度像素值计算最小时间间隔值。
最小刻度像素值是最小的刻度间的像素个数,最小刻度像素值可以根据需 求进行设定,例如,最小刻度像素值可以为25。最小时间间隔值=Tp*最小刻度 像素值。
S163,根据最小时间间隔值确定时间标尺的单位刻度间隔和主刻度间隔。
根据最小时间间隔值通过预设的对应规则,获取时间标尺的单位刻度间隔 和主刻度。对应规则可以根据用户习惯等进行设定。例如,最小时间间隔为12S, 根据用户阅读习惯,对应的单位刻度间隔为15S,主刻度为60S。
S164,根据单位刻度间隔和主刻度间隔绘制所述时间标尺。
在一个实施例中,绘制时间标尺之后,所述方法进一步还包括:
对时间标尺进行显示。
请参见图14,在一个实施例中,对时间标尺进行显示,包括:
S171,获取时间标尺各个刻度的刻度横坐标;
S172,获取时间标尺各个刻度的刻度纵坐标;
S173,根据刻度横坐标和刻度纵坐标,对时间标尺进行显示。
刻度横坐标表征当前刻度实际显示时沿横轴方向的位置,刻度纵坐标表征 当前刻度实际显示时沿纵轴方向的位置。根据每个刻度的刻度横坐标和刻度纵 坐标,将时间标尺的各个刻度显示于屏幕,使得用户能够直观的看到时间标尺, 便于直观的观测波形。
请参见图15,在一个实施例中,S171,获取时间标尺各个刻度的刻度横坐 标,包括:
S1711,计算时间标尺各个刻度对应的刻度时间与波形显示区域的起始时间 的差值,得到第二差值;
S1712,计算第二差值与水平缩放因子的乘积,得到刻度横坐标。
计算机设备获取时间标尺各个刻度对应的刻度时间和波形显示区域的起始 时间,并根据刻度时间和起始时间时间,计算第二差值,进而根据第二差值与 水平缩放因子计算刻度横坐标。(刻度时间-起始时间)*Zh,即为当前刻度的刻 度横坐标。刻度纵坐标的获取方法可以参照波形纵坐标的获取方法进行,在此 不再赘述。时间标尺上的时间数据等也可参照如上刻度的显示方法进行显示,在此不再赘述。
本实施例中,对时间标尺的显示,根据水平缩放因子计算刻度的刻度横坐 标,进一步根据刻度横坐标和和刻度纵坐标对刻度进行显示。时间标尺的显示 充分考虑了缩放比例,将时间标尺压缩或拉伸,使得时间标尺完整的显示在波 形显示区域内,提高显示的准确度,提高了显示效果。
请参见图16,在一个具体的实施例中,对时间标尺和波形的最终显示如图 16所示。
请参见图17,在一个实施例中,本申请实施例提供的波形绘制方法可以通 过图17所示的几个组件实现。其中,图中绘图组件类标尺面板(PanelRuler)和类波形显示面板(PanelWave)是类可缩放面板(PanelZoom)的子类。类可 缩放面板(PanelZoom)持有类视图信息(ViewInfo)实例的引用(属性为 m_view_info视图信息)。类标尺面板(PanelRuler)和类波形显示面板 (PanelWave)都继承自类可缩放面板(PanelZoom),所以也持有类视图信息 (ViewInfo)实例的引用,而且类标尺面板(PanelRuler)和类波形显示面板(PanelWave)的实例都必须要持有同一个类视图信息(ViewInfo)实例的引用。
波形缩放和平移可以用消息订阅发布模型。用户操作触发消息的发布,绘 图组件类标尺面板(PanelRuler)和类波形显示面板(PanelWave)订阅消息, 绘图组件类标尺面板(PanelRuler)和类波形显示面板(PanelWave)收到订阅 的消息后重新绘制图形。当类视图信息(ViewInfo)的属性(缩放,平移)发生变化时会发布“画面变化”消息。
类可缩放面板(PanelZoom)要实现视图信息接口(IViewInfo),视图信息 接口(IViewInfo)初始化时会订阅“画面变化”消息,类可缩放面板(PanelZoom) 必须要实现视图信息接口(IViewInfo)中的抽象方法来响应“画面变化”的消 息。这样所有的类可缩放面板(PanelZoom)的子类,包括类标尺面板(PanelRuler)和类波形显示面板(PanelWave)的实例都能同时接收到“画面 变化”的消息,以实现同步更新多个波形以及时间标尺的显示,以及波形与时 间标尺同步缩放平移的功能。
应该理解的是,虽然图1-2、图6-15的流程图中的各个步骤按照箭头的指 示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本 文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以 其它的顺序执行。而且,图1-2、图6-15中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而 是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进 行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或 者交替地执行。
请参见图18,本申请一个实施例提供一种波形绘制装置10,其用于将多个 数据点绘制形成波形。波形绘制装置10包括单位像素数据点量确定模块110、 数据集划分模块120、波形绘制模块130。其中,
单位像素数据点量确定模块110用于根据数据点采样率和水平缩放因子确 定单位像素数据点量,其中,水平缩放因子是指波形显示区域内单位时长的波 形沿横轴方向占用的像素点数量,单位像素数据点量是指每个像素点代表的数 据点数量;
数据集划分模块120用于若所述单位像素数据点量大于第一预设阈值,则 以所述单位像素数据点量为单位,将待绘制的波形中的多个数据点划分为多个 数据集;
波形绘制模块130用于根据所述单位像素数据点量分别在每个数据集中抽 取数量小于所述单位像素数据点量的等量数据点,并根据抽取得到的数据点绘 制所述波形。
在一个实施例中,波形绘制模块130包括最大最小数据获取单元、垂直绘 制单元和垂线连接单元。最大最小数据获取单元131用于若所述单位像素数据 点量小于或等于第二预设阈值,则分别在所述每个数据集中抽取最大数据点和最小数据点。垂直绘制单元132用于分别绘制所述每个数据集中的最大数据点 与最小数据点之间的连接的垂线,以得到所述每个数据集各自对应的垂线。垂 线连接单元用于将所述每个数据集各自对应的所述垂线逐一连接绘制形成所述 波形。
在一个实施例中,波形绘制模块130还包括目标数据点抽取单元和目标数 据点连接单元。目标数据点抽取单元用于若所述单位像素数据点量大于第二预 设阈值,则分别在所述每个数据集中抽取一个目标数据点,其中,相邻的两个 目标数据点之间的数据点间隔量等于所述单位像素数据点量;目标数据点连接单元用于将所述目标数据点逐一连接绘制形成波形。
请参见图19,在一个实施例中,波形绘制装置10还包括第二绘制模块140。 第二绘制模块140用于若单位像素数据点量小于或等于第一预设阈值,则将多 个数据点逐一连接绘制形成波形。
在一个实施例中,单位像素数据点量确定模块110包括水平缩放因子确定 单元和单位像素数据点量计算单元。水平缩放因子确定单元用于根据波形显示 区域沿横轴方向的像素值和波形显示区域所能显示波形的总时长确定水平缩放 因子;单位像素数据点量计算单元用于计算数据点采样率与水平缩放因子的比 值,得到单位像素数据点量。
在一个实施例中,水平缩放因子获取单元用于计算波形显示区域沿横轴方 向的总像素值与波形显示区域所能显示波形的总时长的比值,得到水平缩放因 子。
在一个实施例中,波形绘制装置10还包括波形显示模块150。波形绘制模 块150包括波形横坐标计算单元、波形纵坐标计算单元和波形显示单元。波形 横坐标计算单元用于计算波形各个点的波形横坐标;波形纵坐标计算单元用于 计算波形各个点的波形纵坐标;波形显示单元用于根据波形横坐标和波形纵坐 标对波形进行显示。
在一个实施例中,波形横坐标计算单元用于获取波形各个点对应的数据时 间;获取波形显示区域的起始时间;计算数据时间和起始时间的差值,得到第 一差值;计算第一差值与水平缩放因子的乘积,得到波形各个点的波形横坐标。
在一个实施例中,波形纵坐标计算单元用于计算所述波形各个点对应的数 据时间和所述波形显示区域的起始时间的差值,得到第一差值;计算所述第一 差值与所述水平缩放因子的乘积,得到所述波形各个点的波形横坐标。
在一个实施例中,波形纵坐标计算单元用于计算所述波形各个点的数据值 与垂直缩放因子的乘积,得到所述波形各个点的波形纵坐标,所述垂直缩放因 子是指所述波形显示区域内单位数据值的波形沿纵轴方向占用的像素点数量。
在一个实施例中,波形纵坐标计算单元还用于计算所述波形的最大数据值 和最小数据值之间的差值,得到纵向差值;计算所述波形显示区域沿纵轴方向 的总像素值与所述纵向差值的比值,得到所述垂直缩放因子。
在一个实施例中,波形绘制装置10还包括波形显示模块150还包括颜色显 示单元,颜色显示单元用于将多个波形以不同的颜色显示。
在一个实施例中,颜色显示单元用于获取每个波形的色度分量,其中,每 个波形的色度分量不同;根据每个波形的色度分量建立每个波形各自对应的HSV 颜色模型;将每个波形各自对应的HSV颜色模型转换为RGB颜色模型,以得到 所述每个波形各自对应的RGB颜色模型;根据每个波形各自对应的RGB颜色模 型对各波形进行显示。
在一个实施例中,颜色显示单元用于计算总色度与所述波形的数量的比值, 得到单位色度分量;对多个所述波形进行编号,根据预设的对应规则,获取编 号后的每个波形各自对应的色度分量,使得显示相邻的两个波形之间的色度分 量的差值大于所述单位色度分量。
在一个实施例中,波形绘制装置10还包括时间标尺绘制模块160。时间标 尺绘制模块160用于绘制时间标尺。时间标尺绘制模块160包括单位像素时长 确定单元、最小时间间隔值计算单元、刻度间隔确定单元和标尺绘制单元。单 位像素时长确定单元用于根据波形显示区域所能显示的总时长和波形显示区域沿横轴方向的像素值,确定单位像素时长,其中,单位像素时长是指每个像素 点代表的时间长度;最小时间间隔值计算单元用于根据单位像素时长和预设的 最小刻度像素值计算最小时间间隔值;刻度间隔确定单元用于根据最小时间间 隔值确定时间标尺的单位刻度间隔和主刻度间隔;标尺绘制单元用于根据所述 单位刻度间隔和所述主刻度间隔绘制所述时间标尺。
在一个实施例中,波形绘制装置10还包括时间标尺显示模块170。时间标 尺显示模块170用于对时间标尺进行显示。时间标尺显示模块170包括刻度横 坐标获取单元、刻度纵坐标获取单元和时间标尺显示单元。刻度横坐标获取单 元用于获取时间标尺各个刻度的刻度横坐标;刻度纵坐标获取单元用于获取时 间标尺各个刻度的刻度纵坐标;时间标尺显示单元用于根据刻度横坐标和刻度 纵坐标,对时间标尺进行显示。
在一个实施例中,刻度横坐标获取单元用于计算所述时间标尺各个刻度对 应的刻度对应时间与所述波形显示区域的起始时间的差值,得到第二差值;计 算所述第二差值与所述水平缩放因子的乘积,得到所述刻度横坐标。
关于上述波形绘制装置10的具体限定可以参见上文中对于上述波形绘制方 法的限定,在此不再赘述。上述波形绘制装置10中的各个模块可全部或部分通 过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以 便于处理器调用执行以上各个模块对应的操作。
请参见图20,在一个实施例中,提供了一种计算机设备,该计算机设备可 以是服务器,其内部结构图可以如图20所示。该计算机设备包括通过系统总线 连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存 储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储 器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机 设备的数据库用于存储源数据、报表数据等。该计算机设备的网络接口用于与 外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种报表 生成方法。
本领域技术人员可以理解,图20中示出的结构,仅仅是与本申请方案相关 的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定, 具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件, 或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器 中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
根据数据点采样率和水平缩放因子确定单位像素数据点量,其中,所述水 平缩放因子是指波形显示区域内单位时长的波形沿横轴方向占用的像素点数 量,所述单位像素数据点量是指每个像素点代表的数据点数量;
若所述单位像素数据点量大于第一预设阈值,则以所述单位像素数据点量 为单位,将待绘制的波形中的多个数据点划分为多个数据集;
根据所述单位像素数据点量分别在每个数据集中抽取数量小于所述单位像 素数据点量的等量数据点,并根据抽取得到的数据点绘制所述波形。
以上实施例提供的计算机设备处理器执行计算机程序实现如上方法步骤的 具体过程和有益效果与其对应的方法实施例类似,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程 序,计算机程序被处理器执行时实现以下步骤:
根据数据点采样率和水平缩放因子确定单位像素数据点量,其中,所述水 平缩放因子是指波形显示区域内单位时长的波形沿横轴方向占用的像素点数 量,所述单位像素数据点量是指每个像素点代表的数据点数量;
若所述单位像素数据点量大于第一预设阈值,则以所述单位像素数据点量 为单位,将待绘制的波形中的多个数据点划分为多个数据集;
根据所述单位像素数据点量分别在每个数据集中抽取数量小于所述单位像 素数据点量的等量数据点,并根据抽取得到的数据点绘制所述波形。
以上实施例提供的计算机可读存储介质实现如上方法步骤的具体过程和有 益效果与其对应的方法实施例类似,在此不再赘述。本领域普通技术人员可以 理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令 相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质 中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何 引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储 器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可 编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM) 或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率 SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储 器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对 上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技 术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细, 但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的 普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改 进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权 利要求为准。