1

シリアルポートからデータを取得してさまざまなグラフに入れることになっている処理アプリに取り組んでいます。グラフを描画するために、giCentre Utilities ライブラリをダウンロードしました。

例の1つに基づいて、単純なグラフをプロットしましたが、シリアルポートからリアルタイムでデータを取得するため、データを追加できる必要があります. 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)変更しません。2050 が追加されたものと同等の配列を返します。したがって、次のことができるはずです。testtest

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

編集:

Processing Reference ページのドキュメントは次のとおり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 に答える