こんにちは。
AMDlabの松原です。
昨日、高校時代の友人の結婚式に出席してきました。
やはり、祝いの席とは良いものですね。
日本の集落や住宅の勉強をしていると「ハレ(晴)とケ(褻)」という言葉よく出てきます。
「晴れ着」とい言葉があることからも分かると思いますが、
「ハレ」が「非日常」、「ケ」が「日常」を指す言葉です。
日本の伝統住宅をよく見てみると、部屋の配置、建具や家具を用いた空間構成、
それから調度品にまでも、その概念が散りばめられていることに気が付きます。
意識的か無意識的かは分かりませんが、
「ハレ」と「ケ」は明確に区切られているべき概念だったようです。
柳田國男は『明治大正史世相篇』の中で、「褻と晴 との 混乱」という言葉を用い、
日常におけるハレの要素が増え、ハレの出現による昂奮が薄まっているという話をしています。
そして、日常での興奮に疲れ「渋い」や「味わい」への懐古が始まるのだとも述べています。
毎日、結婚式のような幸せで楽しいことで埋め尽くされればいいのに、何て思ったりもしましたが、
「ハレ」は「ハレ」、「ケ」は「ケ」。
「非日常」は、たまにあるから良いものなのでしょうね。
続けて、民俗学や社会学の話も語りたいところではありますが、
プログラムのお話をします。
PRODUCTSページへProcessingのプログラムを一つ追加しました。
内容は非常に簡単です。
まず、setupのメソッドの定義ので、画像を読み込みます。
1 2 3 4 5 6 |
void setup() { size(2000,832); #キャンバスサイズの設定 background(r,g,b); #背景色の設定 frameRate(9); #1秒間に何回描写(drawメソッドの実行)するかの設定 img = loadImage("./data/amd_logo.png"); } |
loadImageメソッドで返されるPImageというオブジェクトは、pixcelというメンバを持っています。
pixcelは以下の図のような順で格納されたカラーデータタイプが格納された、1次元配列です。
私としては、このような
2次元配列の方が見慣れているのですが、
今回作成するプログラムは、列や行を特に意識する必要のないプログラムなので、1次配列を利用して組んでいます。
ちなみに、Processingで二次元配列を用いたい時は、PImageのget()メソッドで同様のことを行えます。
描写(draw)メソッドは以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
void draw(){ background(r,g,b); #背景を上描きします。 loadPixels(); #canvasのピクセルを取得します。 img.loadPixels(); #画像のピクセルを取得します。 int herfYSkip = y_skip/2; font = loadFont("./data/DigitalCounter7-14.vlw"); textFont(font); int herfXSkip = x_skip/2; for(int y = 0; y < height; y += y_skip){ for(in x = 0; x < width;x += x_skip){ int loc = x + y*width; float alp = alpha(img.pixels[lc]); int a = (int)alp; if (a ==0){ String[] array = {"0","0","0","0","0","0","0","0","0","0","1","0","0","0","0","0","0","0","0","0","0","0","0"}; List<String> list = Arrays.asList(array); Collections.shuffle(list); text(list.get(0),x + herfXSkip,y + herfYSkip); }else{ String[] array = {"0","1"}; List<String> list = Arrays.asList(array); Collections.shuffle(list); text(list.get(0),x + herfXSkip,y + herfYSkip); } } } } |
配列から取り出したカラーデータを引数としたalphaメソッドより、
その座標の透明度を取得します。
それからtextメソッドでその座標に数字を記入するのですが、
取得したその座標の透明度が0であれば0と描写される確率が高くし、
0以外であれば、0と1が1/2の確率で表示されるよう条件分岐を行っています。
この簡単なプログラムでどんな絵が生まれてくるのか興味のある方は
是非お試しください。
そして、アレンジしてみてくだい。
COMMENTS