1

我正在开发一个处理应用程序,它应该从串行端口获取数据并放入各种图表中。我已经下载了 giCentre Utilities 库来绘制图表。

基于其中一个示例,我得到了它来绘制一个简单的图表,但由于它将实时从串行端口获取数据,我需要能够添加数据。我试图使用 Append() 函数,但没有任何运气。

import org.gicentre.utils.stat.*;    // For chart classes.


float[] test = {1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990};

float[] test2 ={ 19000,  6489,  6401, 7657, 9649, 9767, 12167, 15154, 18200, 23124};

XYChart lineChart;

/** Initialises the sketch, loads data into the chart and customises its appearance.
  */
void setup()
{
  size(500,200);
  smooth();
  noLoop();

  PFont font = createFont("Helvetica",11);
  textFont(font,10);

  // Both x and y data set here.  
  lineChart = new XYChart(this);
  append(test, 2050); 
  append(test2, 21000);
  lineChart.setData(test, test2);

  // Axis formatting and labels.
  lineChart.showXAxis(true); 
  lineChart.showYAxis(true); 
  lineChart.setMinY(0);

  lineChart.setYFormat("###");  
  lineChart.setXFormat("0000");   

  // Symbol colours
  lineChart.setPointColour(color(180,50,50,100));
  lineChart.setPointSize(5);
  lineChart.setLineWidth(2);
}

/** Draws the chart and a title.
  */
void draw()
{
  background(255);
  textSize(9);
  lineChart.draw(15,15,width-30,height-30);

}

不是线吗

append(test, 2050); 
append(test2, 21000);

应该在 (2050, 21000) 添加一个新数据点?每次串行数据进入时只需要调用这些,然后重新绘制绘图就很好了。

非常感谢任何帮助或建议。

4

1 回答 1

0

append()函数返回附加的数组。append(test, 2050)实际上并没有改变test数组,它返回一个相当于test附加了 2050 的数组。因此,您应该能够执行以下操作:

test = append(test, 2050);
test2 = append(test2, 21000);

编辑:

这是处理参考页面上的文档:append(). 下面是一些可以作为简单测试(或学习工具)运行的代码:

void setup()
{
  int[] a = {1, 2, 3};
  int[] b;
  b = append(a, 4);

  print(a.length + "\n");
  print(b.length);
}

返回

3
4
于 2012-12-28T13:56:04.867 回答