這是歷史版本頁面 — 看 Processing (32-bit) 最新版本
想用程式畫圖但不會寫程式?Processing 能幫你什麼
寫程式這件事,最常卡住人的不是邏輯,而是「不知道寫出來會長什麼樣子」。你心裡想的是會動的圖、會變的形狀、按一下滑鼠就產生的視覺變化,但打開程式編輯器,面對的卻是一片空白,連從哪裡開始都不知道。尤其對畫畫、設計、做互動作品的人來說,程式語言像另一種外語,學了老半天還是不知道怎麼把它變成畫面。
一般人的做法是去學一門通用程式語言,但那些語言是為了處理資料、寫系統設計的,跟你想要的「畫出一個會動的圓」距離很遠。就算照著教學打,也常常卡在安裝環境、設定路徑這些跟創作無關的事情上。這類工具切入點是反過來的:先想好你要做什麼視覺作品,再用最少的語法把它做出來,而且打開就能看到畫布,寫一行就動一下,讓程式跟畫面直接對話。
01Processing 到底是做什麼用的?
它是一套開源的程式語言和開發環境,目標是讓沒有程式背景的視覺創作者也能寫程式。你可以在裡面寫簡單的指令,畫出 2D、3D 圖形,做動畫、互動作品,甚至輸出成 PDF。它把程式語法簡化,讓「畫一個圓」「讓它動起來」這種事變成幾行程式碼就能完成,而不是要你先學完一整本程式設計課本。
02完全沒寫過程式的人,學得會嗎?
它的設計出發點就是給初學者用的。語法比一般程式語言精簡,官方文件也寫得很清楚,還有大量範例可以參考。你不需要先懂變數、迴圈這些抽象概念,只要照著範例改數字,就能看到畫面變化,慢慢理解程式是怎麼控制視覺元素的。不過它畢竟還是程式語言,基本的邏輯概念還是要花時間熟悉。
03它能做出什麼樣的作品?
動態視覺、互動圖形、資料視覺化、動畫、數位藝術作品都可以。它內建 2D、3D 和 PDF 輸出功能,也有 OpenGL 加速,可以處理需要即時運算的圖形。超過 100 個擴充函式庫涵蓋影像處理、資料視覺化、互動設計等領域,等於你想要的功能大多有現成的工具可以接上去用。
04可以把我做的東西變成獨立的應用程式嗎?
可以。它允許你把寫好的草稿(sketch)匯出成可執行的檔案,拿去給別人執行,對方不需要安裝 Processing 就能跑。這對做互動裝置、展覽作品、或想發佈小工具給別人用的人來說很方便,不用擔心對方有沒有安裝開發環境。
05它支援 3D 圖形嗎?
支援。它內建 3D 圖形和動畫的函式庫,可以建立三維空間的物體、做旋轉、打光、貼材質等操作。不過要注意,複雜的 3D 動畫或模擬在效能上可能會有瓶頸,如果你的專案需要非常精細的 3D 渲染,可能要考慮其他更專門的 3D 工具。
06設計師或藝術家適合用嗎?
適合。它的官方定位就是給視覺藝術領域的人學習程式概念,設計師、藝術家、研究人員、業餘愛好者都在使用。它的介面很直覺,有程式編輯器、主控台和視覺輸出的畫布,編輯器還有語法標色、自動補齊和錯誤偵測,讓不習慣寫程式的人也能很快上手。
07我想做大型商業專案,用它合適嗎?
要謹慎評估。它常用於原型開發和實驗,但官方資料也提到它在大型專案的擴展性有限,複雜的動畫和模擬在效能上可能會有問題。如果你的目標是商業級的遊戲、高效能應用或大型系統,它可能不是最適合的選擇,可以考慮其他更專業的開發工具。
08它跟 Python 比起來,哪個比較適合我?
取決於你的目標。Python 是通用程式語言,用途廣泛,但它的視覺輸出需要另外安裝圖形函式庫,對初學者來說門檻較高。Processing 是專門為了視覺創作設計的,打開就有畫布,語法也更貼近繪圖需求。如果你主要想做視覺作品,Processing 的學習路徑比較直接;如果你還想寫其他類型的程式,Python 的通用性更高。
09我的電腦很舊,跑得動嗎?
它的系統需求很低,官方說法是在大多數現代電腦上都能順暢執行,包括資源有限的裝置。不過實際效能還是取決於你做的專案複雜度,簡單的 2D 圖形在舊電腦上沒問題,但複雜的 3D 動畫或大量即時運算就可能會卡。
10它跟 Arduino 有什麼不同?
rduino 是控制硬體的,寫的程式是讓微控制器去驅動感測器、馬達、燈泡這些實體元件。Processing 是純軟體,跑在電腦上,輸出的是螢幕上的視覺。兩者可以搭配使用,例如用 Arduino 讀取感測器數據,再傳給 Processing 做視覺化呈現,但如果你只想做螢幕上的作品,不需要碰硬體,Processing 就夠了。
下載與官方連結
processing-3.2.2-windows32.zip · 112 MB · 連結指向軟體原廠
版本紀錄
- 2026-09-24 Processing 4.5.7 452 MB
- 2026-07-20 Processing 4.5.6 452 MB
- 2026-06-26 Processing 4.5.5 452 MB
再看 5 筆
- 2026-01-20 Processing 4.5.1 448 MB
- 2025-10-15 Processing 4.4.10 371 MB
- 2025-09-05 Processing 4.4.7 365 MB
- 2025-08-15 Processing 4.4.6 365 MB
- 2025-07-13 Processing 4.4.4 365 MB
這一版改了什麼
What's new in this version:
- Find in reference for size() opens StringList.size()
- Limit rollovers on EditorStatus to the text portion. Clicking the status area when a URL was showing was problematic because it's also the separator used to adjust the relative size of the two panels.
- Switch to Java 8u111. Not using 8u112 because the build numbers are different depending on the platform, and no 112 fixes are known useful.
- Errant "Could not open the URL" when clicking on error messages
- Fix extensions handling in CFBundleDocument code from appbundler
- Update launch4j to 3.9, fixing a problem with exported applications on Windows reporting "This application requires a Java Runtime Environment 1.8.0_74", when 1.8.0_101 or later were installed.
- Minor String comparison fix for Tweak mode
- Fix quoting problem in IntDict.toJSON()
- Add getRenderer() to SurfaceInfo for Andres
- Exceptions thrown in OpenGL apps when hitting the window's close box
- Add getRowMap() function to Table
- Go back to textMode(MODEL) is native font not available for textMode(SHAPE)
- NPE thrown when using textMode(SHAPE) with a .vlw font
- Add toJSON() method to the data classes (IntDict, FloatDict, StringDict, IntList, FloatList, and StringList). Returns an object of one of those six types as a JSON-formatted String. For something more like the old toString() behavior, use print().
- Simplify font situation to make it possible to use vanilla JRE trees
- Updates for ARM
- Automatic handling of screen FBOs breaks readPixels() for user-provided FBO
- PGraphicsOpenGL: camera info not updated
- Fix PShape, updateTessellation, matrix transformations
- QUAD_STRIP as child shape draws extra lines
- Remove extra glClear() calls
- PShapes do not show up in PDF with P2D renderer
- Some semi-transparent edges of sphere() meshes rendered in higher density
- P2D and P3D not stopping with empty draw() blocks
- Chinese translation updates
- Spanish translation updates
- Spanish "open sketch folder" fix
- Contribution Manager showing 'null' for PeasyCam version
- Call glGetProgramiv to retrieve program log length
- JSONObject get() method is private