一覧へ
50行30列の明るさを data.csv に保存する
2次元配列・マウス入力・CSV 出力
クリックで値を変える
50行 x 30列
▶
−
□
×
課題の要点
演習課題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