一覧へ

50行30列の明るさを data.csv に保存する

2次元配列・マウス入力・CSV 出力

クリックで値を変える 50行 x 30列
×
選択セル row 0, col 0, value 0
data.csv
課題の要点 演習課題1
1

50行30列の値を用意するint[][] data = new int[50][30]; として、行と列で1つの矩形を表します。

2

マウス位置から行と列を求めるクリックされた座標を矩形の幅・高さで割り、data[row][col] の値を変えます。

3

カンマ区切りで保存する1行ぶんの30個の値を , でつなぎ、50行ぶんを data.csv として出力します。

data.csv の中身 プレビュー

        
Processing の考え方 サンプルコード
int rows = 50;
int cols = 30;
int[][] data = new int[rows][cols];
int cellW = 10;
int cellH = 10;

void setup() {
  size(cols * cellW, rows * cellH);
}

void draw() {
  background(255);
  for (int r = 0; r < rows; r++) {
    for (int c = 0; c < cols; c++) {
      fill(data[r][c]);
      rect(c * cellW, r * cellH, cellW, cellH);
    }
  }
}

void mousePressed() {
  int col = mouseX / cellW;
  int row = mouseY / cellH;
  if (0 <= row && row < rows && 0 <= col && col < cols) {
    data[row][col] = min(data[row][col] + 15, 255);
  }
}

void keyPressed() {
  String[] lines = new String[rows];
  for (int r = 0; r < rows; r++) {
    lines[r] = join(str(data[r]), ",");
  }
  saveStrings("data.csv", lines);
}
元の課題画像 image.png
50行30列の矩形をクリックして明るさを変え、data.csv として出力する演習課題