オブジェクト指向プログラミングの入門書。インタラクティブメディアやクリエイティブコーディングという興味深い文脈で、オブジェクト指向プログラミングをゼロから学びます。デザイナーやアーティストなどプログラミングによって何かを創造したい人だけでなく、プログラミングを学びたい人、プログラミングに興味があるすべての人を対象に、ProcessingによるプログラミングおよびProcessing環境の使い方を初心者にもわかりやすいステップアップ形式で丁寧に解説します。インタラクティブアート、ライブビデオ、データ可視化といった最先端のグラフィックアプリケーションを作成するために必要なプログラミングの基礎およびプログラムの構成要素を学ぶことができる、ユニークな実習形式のマニュアルです。
初めてのProcessing 第2版
Daniel Shiffman 著、尼岡 利崇 訳
- TOPICS
- Programming
- 発行年月日
- 2018年12月
- PRINT LENGTH
- 592
- ISBN
- 978-4-87311-861-1
- 原書
- Learning Processing, 2E
- FORMAT
- Print PDF
関連ファイル
目次
恩師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: 索引