本書是Processing學習的入門書,從Processing簡介、開始編程、畫圖開始講起,循序漸進地講解了Processing的各種功能,例如變量、響應、媒體、運動、對象等。本書由Processing語言的創(chuàng)立者所著,內(nèi)容權(quán)V,語言通俗易懂,即使你沒有任何Processing基礎,也能輕松入門。
Casey Reas是UCLA設計與媒體藝術(shù)系的教授。他的大量軟件、裝置及作品都在美國、歐洲和亞洲的各大博物館與藝術(shù)展中出展。在2001年Casey和Ben Fry一起共同創(chuàng)建了Processing。
Ben Fry是Fathom公司的負責人,這是一個在波士頓的設計與軟件咨詢公司。他在MIT媒體實驗室的美學計算組獲得了博士學位,他的研究方向是結(jié)合例如計算機科學、統(tǒng)計學、圖形設計以及數(shù)據(jù)可視化這些不同的學科,創(chuàng)造一種方式讓人更好地理解信息。Ben和Casey Reas在2001年共同創(chuàng)建了Processing。
1 簡介 1
草稿化和原型化 1
靈活性 2
巨人 3
家族樹 3
加入我們 4
2 開始編程 5
第一個程序 6
示例2-1:畫一個橢圓 6
示例2-2:繪制很多圓形 7
顯示(Show) 7
保存和新建 8
分享 8
案例和引用 9
3 畫圖 11
運行窗口 11
示例3-1:繪制一個窗口 11
示例3-2:繪制一個點 11
基本形狀 12
示例3-3:繪制一條線 13
示例3-4:繪制基本形狀 13
示例3-5:繪制一個長方形 14
示例3-6:繪制一個橢圓 14
示例3-7:繪制橢圓的一部分 14
示例3-8:用角度繪圖 16
繪圖順序 16
示例3-9:控制繪圖的順序 16
示例3-10:改變繪圖的順序 16
形狀屬性 17
示例3-11:設置描邊粗細 17
示例3-12:設置描邊端點樣式 17
示例3-13:設置線段轉(zhuǎn)折的樣式 18
繪制樣式 18
示例3-14:設置左上角起始 19
色彩 19
示例3-15:用灰度值繪圖 20
示例3-16:控制填色和描邊 21
示例3-17:用色彩繪圖 21
示例3-18:設置透明度 23
自定義圖形 23
示例3-19:繪制一個箭頭 23
示例3-20:閉合圖形 24
示例3-21:創(chuàng)造一些生物 24
注釋 25
機器人1:繪制 26
4 變量 29
第一個變量 29
示例4-1:重用相同值 29
示例4-2:更改變量值 29
定義變量 30
Processing的變量 31
示例4-3:調(diào)整尺寸大小,看看會發(fā)生什么 31
一點小小的數(shù)學問題 32
示例4-4:基礎算數(shù) 32
循環(huán) 33
示例4-5:重復做一件事 33
示例4-6:使用for循環(huán) 34
示例4-7: for循環(huán)的力量 35
示例4-8:分散開的線條 36
示例4-9:折角的線條 36
示例4-10:嵌套循環(huán) 36
示例4-11:行和列 37
示例4-12:點和線 38
示例4-13:網(wǎng)點 38
機器人2:變量 39
5 響應 41
一次與永久 41
示例5-1: draw( )函數(shù) 41
示例5-2: setup( )函數(shù) 41
示例5-3:全局變量 42
跟隨 43
示例5-4:鼠標跟隨 43
示例5-5:跟隨你的點 43
示例5-6:連續(xù)繪畫 44
示例5-7:設置線條厚度 44
示例5-8:使用easing 45
示例5-9:用easing 做出平滑的曲線 46
單擊 47
示例5-10:單擊鼠標 47
示例5-11:當沒有單擊的時候進行檢測 48
示例5-12:鼠標不同鍵位單擊 49
定位 50
示例5-13:尋找光標 51
示例5-14:圓形的邊界 51
示例5-15:矩形的邊界 53
類型 54
示例5-16:檢測按鍵 54
示例5-17:繪制一些字母 55
示例5-18:檢查特殊按鍵 56
示例5-19:用方向鍵移動 57
映射 57
示例5-20:將值映射到范圍 57
示例5-21:用map( )函數(shù)做轉(zhuǎn)換 58
機器人3:響應 59
6 平移、旋轉(zhuǎn)和縮放 61
平移 61
示例6-1:平移位置 61
示例6-2:多重變換 62
旋轉(zhuǎn) 63
示例6-3:沿角旋轉(zhuǎn) 63
示例6-4:中心旋轉(zhuǎn) 64
示例6-5:移動,然后再旋轉(zhuǎn) 64
示例6-6:旋轉(zhuǎn),然后再移動 65
示例6-7:一個關(guān)節(jié)臂 65
縮放 66
示例6-8:縮放 67
示例6-9:保持描邊一致 67
壓棧和彈出 68
示例6-10:獨立的變換 68
機器人4:平移、旋轉(zhuǎn)和縮放 69
7 媒體 71
圖像 72
示例7-1:加載圖像 72
示例7-2:加載更多圖像 72
示例7-3:鼠標控制圖片 73
示例7-4: GIF的透明度 74
示例7-5: PNG的透明度 74
字體 75
示例7-6:繪制字體 75
示例7-7:在方框中繪制文字 76
示例7-8:在字符串中存儲文字 77
圖形 77
示例7-9:繪制圖形 78
示例7-10:縮放圖形 78
示例7-11:創(chuàng)建一個新的圖形 79
機器人5:媒體 80
8 運動 83
幀 83
示例8-1:觀察幀頻率 83
示例8-2:設置幀頻率 83
速度和方向 84
示例8-3:移動圖形 84
示例8-4:循環(huán) 84
示例8-5:折返 86
補間動畫 86
示例8-6:計算補間位置 87
隨機 87
示例8-7:生成隨機數(shù) 88
示例8-8:隨機繪制 88
示例8-9:隨機移動圖形 88
計時器 89
示例8-10:經(jīng)過時間 90
示例8-11:觸發(fā)時間事件 90
圓周 90
示例8-12:正弦波形的值 92
示例8-13:正弦波運動 92
示例8-14:圓周運動 93
示例8-15:螺旋 93
機器人6:運動 94
9 函數(shù) 97
函數(shù)基礎 97
示例9-1:擲骰子 97
示例9-2:另一個擲骰子方法 98
寫一個函數(shù) 99
示例9-3:繪制貓頭鷹 99
示例9-4:一對貓頭鷹 100
示例9-5:一個貓頭鷹函數(shù) 101
示例9-6:增加超多的貓頭鷹 103
示例9-7:不同尺寸的貓頭鷹 103
返回值 104
示例9-8:返回一個值 104
機器人7:函數(shù) 105
10 對象 109
域和方法 109
定義一個類 110
創(chuàng)建對象 114
示例10-1:創(chuàng)建一個對象 114
示例10-2:創(chuàng)建多個對象 115
標簽 116
機器人8:對象 118
11 數(shù)組 121
從變量到數(shù)組 121
示例11-1:許多變量 121
示例11-2:太多的變量 122
示例11-3:使用數(shù)組,不需要額外的變量 123
創(chuàng)建數(shù)組 123
示例11-4:給一個數(shù)組聲明和賦值 125
示例11-5:簡化數(shù)組賦值 125
示例11-6:一次性對整個數(shù)組賦值 125
示例11-7:重新審視第一個例子 125
循環(huán)和數(shù)組 126
示例11-8:在一個循環(huán)里填入一個數(shù)組 126
示例11-9。鹤粉櫴髽艘苿印127
對象數(shù)組 128
示例11-10:管理多個對象 129
示例11-11:一種管理對象的新方法 129
示例11-12:圖像序列 130
機器人 9:數(shù)組 131
12 數(shù)據(jù) 135
數(shù)據(jù)總結(jié) 135
表格 136
示例12-1:讀取表格 137
示例12-2:繪制表格 137
示例12-3: 29740個城市 139
JSON 140
示例12-4:讀取一個JSON文件 141
示例12-5:從JSON文件讀取數(shù)據(jù)并進行可視化 142
網(wǎng)絡數(shù)據(jù)和API。☉贸绦蚪涌冢143
示例12-6:處理天氣數(shù)據(jù) 145
示例12-7:鏈式方法 146
機器人10:數(shù)據(jù) 146
13 延伸 149
聲音 149
示例13-1:播放一個聲音樣例 150
示例13-2:從話筒中聽取聲音 151
示例13-3:創(chuàng)建一個正弦波形 152
圖像和PDF導出 153
示例13-4:保存圖像 154
示例 13-5:導出PDF 155
你好Arduino 156
示例 13-6:讀取傳感器 157
示例13-7:從串口讀取數(shù)據(jù) 158
示例13-8:可視化數(shù)據(jù)流 159
示例11-9:看待數(shù)據(jù)的另一種方式 160
附錄A 編程小貼士 162
函數(shù)和參數(shù) 162
顏色映射 163
注釋 163
大寫與小寫 163
編程風格 164
控制臺 164
一步一步來 164
附錄B 數(shù)據(jù)類型 165
附錄C 操作的順序 166
附錄D 變量作用域 167