怎样动态绘制数据曲线?
大家好!经过一段时间的学习,初步掌握了arduino和processing的应用,目前碰到的问题是:(1)我从串口传来一组数据,想把它绘制成时间历程曲线,由于同时还有绘图,所以draw函数写成了如下的样子:
void draw() {
// Reset scene
background(0);
lights();
plotCurves();
output();
}
plotCurves函数:
void plotCurves(){
stroke(255,0,0);
strokeWeight(2);
line(xPos,previousData,xPos+1,currentData);
if(xPos>=width){
xPos=0;
}
else
{
xPos++;
}
}
这样会导致之前绘制的线段会被background这句覆盖掉,从而只显示一个跳动的点。
困扰我两天了,请问有什么好办法啊?谢谢 建一个数组(例如存放100个数据)
当串口接收到一个数据,把第99个数据移到第100,98移到99.......第1个数据移到第2个
把新接收到的数据放第一个
把这100个数据输出
就是一条曲线 background放setup里面 tyxiang 发表于 2013-1-9 20:31 static/image/common/back.gif
background放setup里面
这样绘图不能清除背景。出现类似拖影的情况。 bacon6581 发表于 2013-1-9 12:45 static/image/common/back.gif
建一个数组(例如存放100个数据)
当串口接收到一个数据,把第99个数据移到第100,98移到99.......第1个数据 ...
我知道如果不刷新背景的话,processing是可以直接实现绘图的,问题是我同时绘制其他动画时需要刷新背景,所以导致数据图不能暂留在屏幕上。 本帖最后由 tyxiang 于 2013-1-23 09:41 编辑
mechart 发表于 2013-1-12 17:47 static/image/common/back.gif
我知道如果不刷新背景的话,processing是可以直接实现绘图的,问题是我同时绘制其他动画时需要刷新背景, ...
如果你要刷新背景,那就必须每次画所有的点。
数据量大吗?数据量不大按照bacon6581的思路应该没问题。数据量大的话,就按照屏幕宽度开一个固定数量的数组,然后每进来一个新数就丢掉第一个,所有数往前推,新数放最后一个,然后绘图。 楼主大人,你的全部代码方便贴一下么?刚入门想找资料学习,现在资料很少啊
求你的代码,错的也行。呵呵~~~
好多绘图函数啥的都不会用,E文太差。谢谢! darkorigin 发表于 2013-4-14 20:32 static/image/common/back.gif
楼主大人,你的全部代码方便贴一下么?刚入门想找资料学习,现在资料很少啊
求你的代码,错的也行。呵呵~~ ...
你好,你对tyxiang的问题解决了么?我现在也是在processing上面画三条曲线,然后也是动态的。现在画了好多次都没成功!!求大神帮忙!!thx
“将数据量大吗?数据量不大按照bacon6581的思路应该没问题。数据量大的话,就按照屏幕宽度开一个固定数量的数组,然后每进来一个新数就丢掉第一个,所有数往前推,新数放最后一个,然后绘图“。
页:
[1]