オブジェクト指向プログラミングの入門書。インタラクティブメディアやクリエイティブコーディングという興味深い文脈で、オブジェクト指向プログラミングをゼロから学びます。デザイナーやアーティストなどプログラミングによって何かを創造したい人だけでなく、プログラミングを学びたい人、プログラミングに興味があるすべての人を対象に、ProcessingによるプログラミングおよびProcessing環境の使い方を初心者にもわかりやすいステップアップ形式で丁寧に解説します。インタラクティブアート、ライブビデオ、データ可視化といった最先端のグラフィックアプリケーションを作成するために必要なプログラミングの基礎およびプログラムの構成要素を学ぶことができる、ユニークな実習形式のマニュアルです。
https://www.ohmsha.co.jp/book/9784873118611/
正誤表やDLデータ等がある場合はこちらに掲載しています
恩師Red Burnsを偲んで
謝辞
訳者まえがき
イントロダクション
レッスン1 はじめの一歩
1章 ピクセル(画素)
1.1 グラフ用紙
1.2 簡単な図形
1.3 グレースケールカラー
1.4 RGBカラー
1.5 色の透明度
1.6 色の範囲のカスタム設定
2章 Processing
2.1 Processing が手助けをする
2.2 Processing をどうやって手に入れたらいいの?
2.3 Processing アプリケーション
2.4 スケッチブック
2.5 Processing でコーディングする
2.6 エラー
2.7 Processing リファレンス
2.8 実行ボタン
2.9 最初のスケッチ
3章 インタラクション
3.1 流れとともに進める
3.2 私たちの良き友人:setup() とdraw()
3.3 マウスによる変化
3.4 マウスのクリックとキーの押し下げ
レッスン2 条件式と繰り返し
4章 変数
4.1 変数とは何か?
4.2 変数の宣言と初期化
4.3 変数を使う
4.4 たくさんの変数
4.5 システム変数
4.6 ランダム(乱数):変化に富むことは人生のスパイスである
4.7 変数のZoog
4.8 移動(Translation)
5章 条件文
5.1 論理式
5.2 条件文:if、else、else if
5.3 スケッチ内での条件文
5.4 論理演算子
5.5 複数のロールオーバー
5.6 ブーリアン変数
5.7 跳ね返るボール
5.8 物理学初級講座
6章 ループ
6.1 真面目な話、繰り返しとは何か?
6.2 while ループ:必要なだけループする
6.3 「終了」条件
6.4 for ループ
6.5 ローカルvs グローバル変数(別名「変数のスコープ」)
6.6 draw() ループ内のループ
6.7 Zoogの腕が成長する
レッスン3 関数とオブジェクト
7章 関数
7.1 分解する
7.2 「ユーザー定義」関数
7.3 関数を定義する
7.4 簡単なモジュール性
7.5 引数
7.6 コピーを渡す
7.7 戻り値の型
7.8 Zoogの再編成
8章 オブジェクト
8.1 オブジェクト指向プログラミング(OOP)をよく理解する
8.2 オブジェクトを使う
8.3 クッキーの抜き型を書く
8.4 オブジェクトを使う:その詳細
8.5 タブを使ってひとつにまとめる
8.6 コンストラクタのパラメータ
8.7 オブジェクトはデータ型でもある!
8.8 オブジェクト指向のZoog
レッスン4 配列処理
9章 配列
9.1 配列:なぜ気にしないといけないのか?
9.2 配列とは何か?
9.3 配列の宣言と生成
9.4 配列の初期化
9.5 配列の操作
9.6 簡単な配列の例:蛇
9.7 オブジェクトの配列
9.8 インタラクティブなオブジェクト
9.9 Processing の配列関数
9.10 1001 匹Zoogちゃん
レッスン5 ひとつにまとめる
10章 アルゴリズム
10.1 我々はどこにいて、どこに向かうのか?
10.2 アルゴリズム
10.3 アイデアからパーツへ
10.4 パーツ1:キャッチャー
10.5 パーツ2:交差判定
10.6 パーツ3:タイマー
10.7 パーツ4:雨粒
10.8 統合:ドレスアップする
10.9 この後の学習の進め方
11章 デバッグ
11.1 助言#1:休憩をとる
11.2 助言#2:他の人に参加してもらう
11.3 助言#3:単純化
11.4 助言#4:println() は、あなたの友人です
12章 ライブラリ
12.1 ライブラリ
12.2 組み込みライブラリ
12.3 寄稿されたライブラリ(Contributed libraries)
12.4 手動でライブラリをインストールする
レッスン6 数学と3D
13章 数学
13.1 数学とプログラミング
13.2 モジュロ
13.3 乱数
13.4 確率レビュー
13.5 コードでの発生確率
13.6 パーリンノイズ
13.7 map() 関数
13.8 角度
13.9 三 角法
13.10 振動
13.11 再帰
13.12 2 次元配列
14章 3Dでの移動と回転
14.1 z 軸
14.2 P3Dとはいったい何?
14.3 バーテックス図形
14.4 カスタム3D図形
14.5 単純な回転
14.6 異なる軸での回転
14.7 スケール
14.8 行列:プッシュする、ポップする
14.9 Processing の太陽系
14.10 PShape
レッスン7 画像と動画
15章 画像
15.1 画像から始める
15.2 画像を用いたアニメーション
15.3 最初の画像処理フィルター
15.4 画像の配列
15.5 ピクセル、ピクセル、さらにピクセル
15.6 画像処理入門
15.7 2 つ目の画像処理フィルター:独自のtint() を作る
15.8 もうひとつのPImageオブジェクトのピクセルへの書き込み
15.9 レベル2:ピクセル集合処理
15.10 クリエイティブな可視化
16章 ビデオ
16.1 ライブビデオの基礎
16.2 録画ビデオ
16.3 ソフトウェアミラー
16.4 センサーとしてのビデオ、コンピュータビジョン
16.5 背景除去
16.6 モーション検出
16.7 コンピュータビジョンのライブラリ
レッスン8 テキスト処理
17章 テキスト
17.1 String はどこから来るのか?
17.2 文字列とは何か?
17.3 テキストを表示する
17.4 テキストアニメーション
17.5 テキストモザイク
17.6 回転するテキスト
17.7 テキストを1 文字ずつ表示する
18章 データ入力
18.1 文字列の操作
18.2 分割と結合
18.3 データを扱う
18.4 テキストファイルで作業する
18.5 表形式データ
18.6 標準化されていないフォーマットのデータ
18.7 データ分析
18.8 XML
18.9 Processing のXMLクラスを使う
18.10 JSON
18.11 JSONObjectとJSONArray
18.12 スレッド
18.13 API
19章 データストリーム
19.1 ネットワーク通信
19.2 サーバーを作る
19.3 クライアントを作成する
19.4 ブロードキャスティング
19.5 マルチユーザー通信パート1:サーバー
19.6 マルチユーザー通信パート2:クライアント
19.7 マルチユーザー通信パート3:すべてをひとつにまとめる
19.8 シリアル通信
19.9 ハンドシェイクによるシリアル通信
19.10 文字列のシリアル通信
レッスン9 音声処理
20章 サウンド
20.1 基本的なサウンドの再生
20.2 より魅力的なサウンドの再生
20.3 サウンド合成
20.4 サウンド解析
20.5 サウンドの閾値
20.6 スペクトラム解析
21章 書き出し
21.1 ウェブへ書き出す
21.2 スタンドアローンアプリケーション
21.3 高解像度のPDF
21.4 画像とsaveFrame()
21.5 ビデオを録画する
レッスン10 Processingを支える技術
22章 高度なオブジェクト指向プログラミング
22.1 カプセル化
22.2 継承
22.3 継承の実例:図形
22.4 多態性(ポリモーフィズム)
22.5 オーバーロード
23章 Java言語
23.1 魔法を明かす
23.2 Processing がなければコードはどんな風になるか
23.3 Java API を探索する
23.4 その他の便利なJava クラス:ArrayList
23.5 その他の便利なJava クラス:Rectangle
23.6 例外処理(エラー処理)
23.7 Processing 以外のJava 開発環境
付録A 一般的なエラー
A.1 コンパイル時のエラー
Missing a semi-colon ";"
Missing left parentheses "("
Missing right curly bracket "}"
The variable "myVar" doesn't exist.
The local variable "myVar" may not have been initialized.
The class "Thing" doesn't exist.
The function "myFunction()" expects parameters like this: myFunction
(type, type, type, ...)
The method "function(type, type, type, ...)" does not exist.
Error on " _____ "
A.2 ランタイムエラー
java.lang.NullPointerException
java.lang.ArrayIndexOutOfBoundsException:
索引