Python極客項目編程pdf

來源:互聯網
上載者:User

標籤:gen   範圍   收集   restart   邊界條件   tar   目標   編程經驗   編寫   

:網盤下載 

 

 

內容簡介  · · · · · ·

Python 是一種強大的程式設計語言,容易學習而且充滿樂趣。但掌握了基本知識後,接下來做什嗎?

本書包含了一組富有想象力的編程項目,它們將引導你用Python 來製作映像和音樂、類比現實世界的現象,並與

Arduino 和樹莓派這樣的硬體進行互動。你將學習使用常見的Python 工具和庫,如numpy、matplotlib 和pygame,

來完成以下工作:

● 利用參數方程和turtle模組產生萬花尺圖案;

● 通過類比頻率泛音在電腦上創作音樂;

● 將圖形映像轉換為ASCII文本圖形;

● 編寫一個三維立體畫程式,產生隱藏在隨機圖案下的3D映像;

● 通過探索粒子系統、透明度和廣告牌技術,利用OpenGL著色器製作逼真的動畫;

● 利用來自CT和MRI掃描的資料實現3D可視化;

● 將電腦串連到Arduino編程,建立響應音樂的雷射秀。

通過本書,你可以享受作為極客的真正樂趣!

作者簡介  · · · · · ·

作者簡介

Mahesh Venkitachalam是一位擁有二十年編程經驗的軟體工程師。 他從八年級就開始培養對技術的熱情,彙集成了他受歡迎的電子和編程部落格:electronut.in。

目錄  · · · · · ·目錄
第一部分熱身運動
第1章解析iTunes播放清單3
1.1 iTunes播放清單檔案剖析 3
1.2 所需模組 5
1.3 代碼 5
1.3.1 尋找重複 5
1.3.2 提取重複 6
1.3.3 尋找多個播放清單中共同的音軌 7
1.3.4 收集統計資訊 8
1.3.5 繪製資料 8
1.3.6 命令列選項 9
1.4 完整代碼 10
1.5 運行程式 13
1.6 小結 14
1.7 實驗 14
第2章 萬花尺 15
2.1 參數方程 16
2.1.1 萬花尺方程 17
2.1.2 海龜畫圖 19
2.2 所需模組 20
2.3 代碼 20
2.3.1 Spiro建構函式 20
2.3.2 設定函數 21
2.3.3 restart()方法 21
2.3.4 draw()方法 22
2.3.5 建立動畫 22
2.3.5 SpiroAnimator類 23
2.3.5 genRandomParams()方法 24
2.3.6 重新啟動程式 24
2.3.7 update()方法 25
2.3.8 顯示或隱藏游標 25
2.3.9 儲存曲線 25
2.3.10 解析命令列參數和初始化 26
2.4 完整代碼 27
2.5 運行萬花尺動畫 32
2.6 小結 33
2.7 實驗 33
第二部分 類比生命
第3章 Conway生命遊戲 37
3.1 工作原理 38
3.2 所需模組 39
3.3 代碼 40
3.3.1 表示網格 40
3.3.2 初始條件 41
3.3.3 邊界條件 41
3.3.4 實現規則 42
3.3.5 向程式發送命令列參數 43
3.3.6 初始化類比 43
3.4 完整代碼 44
3.5 運行類比人生的遊戲 46
3.6 小結 47
3.7 實驗 47
第4章 用Karplus—Strong演算法產生音樂泛音 49
4.1 工作原理 51
4.1.1 類比 51
4.1.2 建立WAV檔案 52
4.1.3 小調五聲音階 53
4.2 所需模組 54
4.3 代碼 54
4.3.1 用deque實現環形緩衝區 54
4.3.2 實現Karplus—Strong演算法 55
4.3.3 寫WAV檔案 56
4.3.4 用pygame播放WAV檔案 56
4.3.5 main()方法 57
4.4 完整代碼 58
4.5 運行撥弦類比 61
4.6 小結 62
4.7 實驗 62
第5章 類鳥群:模擬鳥群 63
5.1 工作原理 64
5.2 所需模組 64
5.3 代碼 64
5.3.1 計算類鳥群的位置和速度 65
5.3.2 設定邊界條件 66
5.3.3 繪製類鳥群 67
5.3.4 應用類鳥群規則 68
5.3.5 添加個體 70
5.3.6 驅散類鳥群 71
5.3.7 命令列參數 71
5.3.8 Boids類 71
5.4 完整代碼 72
5.5 運行類鳥群類比 75
5.6 小結 76
5.7 實驗 76
第三部分 圖片之樂
第6章 ASCII文本圖形 79
6.1 工作原理 80
6.2 所需模組 81
6.3 代碼 81
6.3.1 定義灰階等級和網格 82
6.3.2 計算平均亮度 82
6.3.3 從映像產生ASCII內容 83
6.3.4 命令列選項 84
6.3.5 將ASCII文本圖形字串寫入文字檔 84
6.4 完整代碼 85
6.5 運行ASCII文本圖形產生程式 87
6.6 小結 87
6.7 實驗 88
第7章 照片馬賽克 89
7.1 工作原理 90
7.1.1 分割靶心圖表像 90
7.1.2 平均顏色值 91
7.1.3 匹配映像 91
7.2 所需模組 92
7.3 代碼 92
7.3.1 讀入小塊映像 92
7.3.2 計算輸入映像的平均顏色值 93
7.3.3 將靶心圖表像分割成網格 93
7.3.4 尋找小塊的*佳匹配 94
7.3.5 建立映像網格 95
7.3.6 建立照片馬賽克 96
7.3.7 添加命令列選項 97
7.3.8 控制照片馬賽克的大小 97
7.4 完整代碼 98
7.6 運行照片馬賽克產生程式 102
7.7 小結 103
7.7 實驗 103
第8章 三維立體畫 105
8.1 工作原理 106
8.1.1 感知三維立體畫中的深度 106
8.1.2 深度圖 108
8.2 所需模組 109
8.3 代碼 109
8.3.1 重複給定的平鋪映像 109
8.3.2 從建立隨機圓平鋪 110
8.3.3 建立三維立體畫 111
8.3.4 命令列選項 112
8.4 完整代碼 113
8.5 運行三維立體畫產生程式 115
8.6 小結 117
8.7 實驗 117
第四部分 走進三維
第9章 理解OpenGL 121
9.1 老式OpenGL 122
9.2 現代OpenGL:三維圖形管線 124
9.2.1 幾何圖元 124
9.2.2 三維變換 125
9.2.3 著色器 127
9.2.4 頂點緩衝區 128
9.2.5 紋理貼圖 129
9.2.6 顯示OpenGL 129
9.3 所需模組 130
9.4 代碼 130
9.4.1 建立OpenGL視窗 130
9.4.2 設定回調 131
9.4.3 Scene類 133
9.5 完整代碼 137
9.6 運行OpenGL應用程式 142
9.7 小結 143
9.8 實驗 143
第10章 粒子系統 145
10.1 工作原理 146
10.1.1 為粒子運動建模 147
10.1.2 設定最大範圍 147
10.1.3 渲染粒子 149
10.1.4 利用OpenGL混合來建立更逼真火花 149
10.1.5 使用公告板 150
10.1.6 產生火花動畫 151
10.2 所需模組 151
10.3 粒子系統的代碼 151
10.3.1 定義粒子的幾何形狀 152
10.3.2 為粒子定義時間延遲數組 153
10.3.3 設定粒子初始速度 153
10.3.4 建立頂點著色器 154
10.3.5 建立片段著色器 156
10.3.6 渲染 156
10.3.7 Camera類 158
10.4 粒子系統完整代碼 158
10.5 盒子代碼 164
10.6 主程式碼 166
10.6.1 每步更新這些粒子 167
10.6.2 鍵盤控制碼 168
10.6.3 管理主程式迴圈 168
10.7 完整主程式碼 169
10.8 運行程式 172
10.9 小結 172
10.10 實驗 172
第11章 體渲染 173
11.1 工作原理 174
11.1.1 資料格式 174
11.1.2 產生光線 175
11.1.3 顯示OpenGL視窗 177
11.2 所需模組 178
11.3 項目代碼概述 178
11.4 產生三維紋理 178
11.5 完整的三維紋理代碼 180
11.6 產生光線 181
11.6.1 定義顏色立方體的幾何形狀 182
11.6.2 建立框架緩衝區對象 184
11.6.3 渲染立方體的背面 185
11.6.4 渲染立方體的正面 185
11.6.5 渲染整個立方體 186
11.6.6 調整大小處理常式 187
11.7 完整的光線產生代碼 187
11.8 體光線投射 192
11.8.1 頂點著色器 194
11.8.2 片段著色器 194
11.9 完整的體光線投射代碼 196
11.10 二維切片 199
11.10.1 頂點著色器 201
11.10.2 片段著色器 202
11.10.3 針對二維切片的使用者介面 202
11.11 完整的二維切片代碼 203
11.12 代碼整合 206
11.13 完整的主檔案代碼 207
11.14 運行程式 209
11.15 小結 210
11.16 實驗 210
第五部分 玩硬體
第12章 Arduino簡介 215
12.1 Arduino 216
12.2 Arduino生態系統 217
12.2.1 語言 218
12.2.2 IDE 218
12.2.3 社區 218
12.2.4 外設 219
12.3 所需模組 219
12.4 搭建感光電路 219
12.4.1 電路工作原理 219
12.4.2 Arduino程式 220
12.4.3 建立即時圖表 221
12.5 Python代碼 222
12.6 完整的Python代碼 224
12.7 運行程式 226
12.8 小結 227
12.9 實驗 227
……
第13章 雷射音樂秀 229
第14章 基於樹莓派的天氣監控器 253
附錄A 軟體安裝 275
附錄B 基礎實用電子學 281
附錄C 樹莓派的建議和技巧 289
文摘
著作權頁:

 

 

 

:網盤下載 

 

Python極客項目編程pdf

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.