『初めてのProcessing 第2版』読書メモ(19章まで)

はじめに

初めてのProcessing 第2版』はProcessingを通してオブジェクト指向プログラミングを学ぶことができる本です。

以前TwitterでProcessingで作られた映像を見てProcessingに興味を持ち、図書館で借りてみました。

全23章中19章までの読書メモになります。読み終わるまで2-3ヶ月目安の本を2-3週間で読もうとしましたが無理がありました。練習問題などは飛ばし飛ばしやっていました。

各章詳細

1-3章

ピクセル、カラーやProcessingの話。

2章でProcessingの環境構築をします。

  • PDEはデフォルトのフォントSource Code Proだと日本語が文字化けしたため、環境設定から Menlo に変更しました。
  • コード補完も有効に。Ctrl + Spaceで補完候補が表示されます。

4-9章

基本的な文法を学びつつ、Processing独自の変数・関数を学んでいきます。

変数、条件文、ループ、関数、オブジェクト、配列。

概念説明→Processingで書いてみる、の繰り返し。この辺りは流し読みで進めました。

10章

これまでの章の総まとめ。オブジェクト指向を使って雨粒キャッチゲームを作りました。

11, 12章

箸休め的内容。デバッグ方法、ライブラリの説明。

13-15章

ここから応用的な内容になってきます。数学, 3D, 画像処理など。

  • ピクセル集合処理が面白かったです。ペイントソフトのフィルタ処理(ぼかし、鮮鋭化)の方法が知れて良かった。畳み込みって機械学習で聞いた単語だけど、数学用語なんですかね。
  • 練習問題14-5、8個の四角形からなる3次元の立方体を作るという問題。おそらく6個の四角形だと思われます。

16, 17章

ビデオとテキスト。カメラの映像がその場で画像処理されるのが楽しくて良かったです。

18章

データ入力。

  • HTMLをStringで取得・処理して要素を取ってくるのつらみがありました。XMLJSONはクラスが用意されていましたが。静的型付け言語だから、JSONObjectとJSONArrayクラスがあるのはなるほど…と思いました。

  • 練習問題・例を実行するためにOpenWeatherMapとNYTimesのAPI Key登録が必要。

例18-5

サンプルコードをそのまま実行したら文字化けしました。URLから取得するファイルがgzip圧縮されているようです。

Terminalで以下のコマンドを実行して、dataフォルダ下にgzip解凍したテキストファイルを出力。

cd [例18-5のスケッチディレクトリパス]
mkdir data
curl "http://www.gutenberg.org/cache/epub/1514/pg1514.txt" | gunzip > data/pg1514.txt

サンプルコードを修正してローカルファイルを読み込むようにしました。

String[] rawtext = loadStrings("data/pg1514.txt");

19章

クライアント・サーバを作りました。ネットワークの本、基本情報の本読むと理解が深まりそうだと思いました。

telnetでサーバへ接続確認する箇所があります。macOS High Sierra以降はコマンドが入ってないのでbrew installする必要あり。

環境面

  • 例はlearningprocessingから見れますが一部表示されません。ファイルをダウンロードして実行した方が良さそうです。

  • PDEはしんどいので、以下の記事を参考にVSCodeでスケッチを実行できるようにしました。特に例はいちいちPDEから開くのが面倒なので、この方が良いです。

    Processingのvscode開発環境を構築(Mac)

  • Retinaディスプレイだと pixelDensity() で解像度設定をする必要あり。

感想

  • Processingは簡単に、インタラクティブな画像処理ができるのが強みなんだなと思いました。
  • HSPっぽさを感じましたが、画像描画して遊ぶのがHSP以来だったのと、副作用がある関数が多いからかもしれません。
  • Zoogちゃんがキモカワイイ
  • 途中までしか読めなかったので、また借りるか買うかして読みたいです。