搞這麼麻煩幹嘛?

最近在這個問題下面寫了個回答,出於照顧小白的考慮,先寫了一句話:

我就來個不需要編程的吧………………

實際上我是用程序生成了那個貼圖,然而不用程序做出同樣的貼圖也十分簡單,所以就假裝沒用程序了。但是我瀏覽了其他回答,發現有些人有這樣一種觀念:我不編程就可以畫出來,那為什麼還要寫程序?搞這麼麻煩幹嘛?那些貼程序的一定就是在裝逼,這是囧乎風氣。

在我讀起來,這句話基本就是這個意思:「能手工擼的東西,為什麼要自動化?」

實際上正好相反,這種繪圖類問題用程序解決是十分必要的。先從簡單的方面說起,人類用程序解決問題的動機是什麼?直接的答案就是因為重複勞動的存在:

問題里的圖片就是九個球啊,就算你不需要每個球都從頭開始做,你複製粘貼調顏色不也得重複八次?如果你不是需要做九個球,而是一百個呢?你要找一個夜深人靜的時間自己一個個苦逼地擼么?

但是你也發現了,這九個球不是完全相同的,他們有不同的顏色、角度和模式。這就引出了程序更本質的一個好處:程序不僅可以解決重複的問題,還可以把問題參數化。這次讓你做的是這種圓形的「馬賽克」,如果下次你需要做同樣地東西,但是使用正方形的呢?你要手工重來一遍么?如果再下次又變成了三角形呢?一個更好的例子就是左下角那個球,注意貼圖的 pattern 不再是正方排列,而是扭了一下的樣子,已經無法使用 Photoshop 的半調濾鏡來生成,這時參數化的優勢就突顯了:這種排列只是帶奇偶性的正方排列而已。也許你會說這種用 Illustrator 混合工具也可以做,只是稍麻煩一點而已(不過話說混合工具真麻煩……),而且有沒有奇偶性這種不能算參數化吧?那你想想如果我想讓這種「扭轉」更小一點,Illustrator 怎麼處理?用程序的話只需要把奇偶性變成 mod 3 或者 mod 4 處理就可以,而帶奇偶性和原來不帶奇偶性的「馬賽克」只是這種類「馬賽克」圖形里 mod 2 和 mod 1 的特殊情況而已。要生成這樣的圖形只需要改變程序里的一個數。不騙你,以下分別為 mod 2 和 mod 3 的貼圖,Processing 程序見 gist.github.com/MetroWi

所以總結一下,用程序不僅可以方便地生成重複的圖形,更可以方便的生成同一類型的不同圖形。這樣當別人還在吭哧吭哧一張張擼貼圖的時候,你就可以回家打遊戲了。


推薦閱讀:

Scratch編程之圖形特效(2)一花一世界,編程的世界很大很奇蹟(上)
張泉靈代言的編程貓三個月內兩次融資 少兒編程教育吸金才剛剛開始
目前市場上,你用過的最好用的文本編輯器是什麼?
跨平台通用賬號系統設計規則是什麼?
雲時代的編程模式將會走向何方?

TAG:平面設計 | 計算機圖形學 | 編程 |