SDL中文论坛
标题:
使用tplot_chart绘图
[打印本页]
作者:
ancientcc
时间:
2016-5-26 20:50
标题:
使用tplot_chart绘图
本帖最后由 ancientcc 于 2016-8-12 10:48 编辑
tplot_chart用于在场景中绘图。它的特点是把要画的内容平摊到单元。它要求数据是在一个文件中,内容是以着一个自定义的块一个个铺下去。它要求块的前四字节指示一个升序的时间值。举个例子,块是以下的一个struct。
struct ttemperature: public tplot_chart::titem
{
int value1;
int value2;
int battery;
};
复制代码
为内存和struct一致,该struct不能定义成员函数。titem是个只有时间字段的struct。
struct titem
{
int time;
};
复制代码
使用tplot_chart绘图要经过三个步骤:生成指示单元如何画的unit_params,在大地图绘图和在小地图绘图。
步骤一:生成指示如何画单元的unit_params
它是通过调用generate。
void generate(tfile& file, int used_units, int zoom)
file:数据文件。
used_units:可使用的单元数。
zoom:每单元像素数。
复制代码
它会生成unit_params,指示单元该如何画图表。下图是当中过程。
(, 下载次数: 2068)
上传
点击文件名下载附件
如何计算每个单元要使用多少个样本?
假定要使用单元数(N)是固定的,样本数(M)是固定的。使用前方优先扩散法,它生成的结果余数被分摊到前面的J个单元,分摊到余数的单元增加一个样本。
int integer = M / N;
int can_spread = M - integer * N;
for (int num = 0; num < N; num ++) {
int integer2 = integer;
if (can_spread) {
integer2 ++;
can_spread --;
}
// integer2指示分配给该单元的样本数
}
复制代码
1、每个样本都有time字段,而且这个time值是升序。
2、样本是按时间被平均到N个单元,而不是简单按样本数。
欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/)
Powered by Discuz! X3.3