
一、極坐標變形的感性認識
先看一下極坐標對圖像做的是一種什麼樣的扭曲。如圖
這一組圖分別是正方型、圓形和色塊通過極坐標變換前後的圖像。
直角坐標到極坐標的變化:可以認為是頂邊下凹,底邊和兩側邊上翻的過程。
極坐標到直角坐標的變化:可以認為是底邊上凹,頂邊和兩側邊下翻的過程。
這裡所說的「過程」只是用來加深記憶而已,實際上這個上翻下翻的過程是不存在的,而是直接通過坐標映射而成的。
1、直角坐標—>極坐標
原圖中的豎線經極坐標變換後,變為放射線。
原圖中的橫線經極坐標變換後,變為同心圓。
當然橫豎交錯畫出來就是蜘蛛網啦。
請觀察每種顏色色塊在變換之後的位置,原圖的頂部收縮為圓心部分,底部的紅色成為畫布內切圓。左右兩個藍色的色塊向上翻轉之後最終合併為一個扇型,原來的兩個側邊會在上方重合。
記住每種色塊變化前後的位置不僅有住於加深對極坐標濾鏡的理解而且在實際應用中也有幫助,至少現在你已經學會畫放射線、同心圓、扇型了。
2、極坐標—>直角坐標
原圖中的豎線和橫線(坐標軸除外)經變換後,變為圖中的拋物線/雙曲線(具體是那種線形我尚未搞清楚,但我更傾向於是雙曲線)。
坐標軸經變換後,變為縱向的5條分隔線,其中1,3,5是原縱軸,2,4是原橫軸。
對於色塊的變化,請大家注意一下位置和幅度就是了,這個我研究得不多。
Btw:在前言裡我曾說過極坐標對圖像有破壞性,其實極坐標濾鏡也具有一定的還原性,畢竟這是坐標系間的映射。對於執行了正變換的圖形再執行反變換還是可以恢復出原圖的一些信息的。但是因為極坐標不是一一對應的關係,所以在圖的邊緣部分的信息就不能恢復了。比較另類的應用還可以利用極坐標的還原性為圖片加密。
二、極坐標濾鏡應用
我使用極坐標濾鏡主要還是用於畫圓,或者說畫以圓為基礎的圖像。我們經常看到用矢量軟件畫的一些重複的有規律的圖形,其實某些圖利用極坐標濾鏡就可以完成,有時比用矢量軟件做得更好,變化更多。
2.1 放射線的製作,參見第一部分。
2.2 同心圓的製作,參見第一部分。
2.3 扇型,環型,彩虹,參見第一部分。
2.4 螺線
螺旋線在矢量軟件中畫是相當簡單的事,有些軟件本身就有螺線工具。但是對於ps來說,並沒有特別合適的繪製螺線的工具或公式。在扭曲濾鏡裡有一個旋轉扭曲(Twirl)濾鏡可以做類似螺線的效果,但感覺可控性不強。
我從畫同心圓得到啟發,發現可以利用極坐標濾鏡來畫螺線,無論是等距的還是開放式的都可以畫,步驟也比較簡單,只有幾步而已。
先建立一個矩形空白文件(400*20),畫一條斜線(如果是粗斜線,那麼注意斜線在畫布的另兩個頂角部分也要畫斜線處理一下以保證下一步填充時能夠正常銜接),定義圖案。如圖
建立新文件(400*400)用剛才定義的圖案填充。如圖
應用極坐標濾鏡,直角坐標——極坐標
應用光照濾鏡。
再應用球面化濾鏡和其他的修改,完成。
上面這個圖是畫等距螺線用的,如果畫不等距螺線,需要改變每條斜線的間距和斜率。

說明:圖片的右下會出現一道黑色的痕跡,這條黑線是原圖的底邊上的黑點映射過來的。原圖的底邊在極坐標後會映射為與新圖外邊框內切的圓(正方形畫布,如果是長方形畫布就是橢圓)以及圓外的所有空白的地方。如果要避免這條黑線,只要注意原圖的底邊線為背景色就可以了。其實這道線也有其特殊的用法,具體見後面的例子。
畫好的螺線還可以用ImageReady做成Gif動畫。
http://korx.vicp.net/sandleaf/images/20030404polar/p01b.gif
2.5 縱向斜線和網格的極坐標變化
道理都是一樣的,看明白一個,其他的就都會了。但要注意,如果是填充豎線,新的畫布尺寸最好是原定義圖案尺寸的整數倍。不然,原圖的左右兩邊在極坐標濾鏡之後不能很好的融和。
下面的這兩個圖就利用了剛才介紹的黑線做成了內切圓外的放射線。

複雜圖形演變
2.6 網格的極坐標變化
利用簡單的網格配合其他一些濾鏡的使用可以做出各種出人意料的效果。如圖組6∼組9。下面以組8為例簡單介紹一下製作方法。
先畫網格,不知道大家用什麼方法畫網格?填充還是別的什麼方法,以後可以交流一下。我畫網格用的是拼貼(Tiles)。
使用極坐標濾鏡(極坐標—>直角坐標),垂直翻轉。

再次s使用極坐標濾鏡(極坐標—>直角坐標),垂直翻轉。
再使用極坐標濾鏡(直角坐標—>極坐標)
使用光照濾鏡,曲線


完成效果如下。
組7和組9的製作方法與組8類似,只是中間夾雜了一些其他的步驟。

其他應用
2.7 製作光盤
製作光盤的方法很多,這個當然是用極坐標畫的,但感覺做得並不好。
2.8 放射文字
組11,關於這個網上有很多教程,不再贅述。
2.9 形狀的極坐標變化
我最喜歡這個,是無意中試出來的。組12。
具體應用就講到這裡,最後講講一點點理論,說一下極坐標轉換濾鏡的工作過程。
三、 極坐標濾鏡的工作過程(直角坐標到極坐標)
一般而言,位圖圖像中的任意一點(象素)可以用直角坐標(x,y)來表示。同樣這個像素也可以由極坐標(r,a)來表示。極坐標濾鏡的工作過程就是將基於直角坐標系的象素(x,y)經過極坐標映射(r,a)之後再由直角坐標(x』,y』)表示出來的過程。
直角坐標和極坐標的互化公式如下:
r = sqrt ( x * x + y * y )
a = arctg ( y / x )
x = r * cos ( a )
y = r * sin ( a )
下面是一段是模擬極坐標濾鏡工作的偽代碼。這個代碼並不是我編寫的,我也只是看懂而已,更詳細的解釋可以參考下面的鏈接:
http://www.jasonwaltman.com/thesis/filter-polar.html
(這是個國外的網站,站主利用C++模擬出了一些PS的濾鏡的效果,而且提供源代碼和源程序。)
for every pixel in the original image do
{
// x和y是當前象素在直角坐標內的坐標。
// 圖像中心點的坐標為 x = 0, y = 0。
// r 和 a 是象素的極坐標。其中角度a為弧度單位。
r = sqrt ( x * x + y * y );
a = atan2 ( y / x );
// R取圖像長和寬的最小值的一半。
R= min[ image_width , image_height ] / 2
// 新的x和y是經過極坐標濾鏡變換之後,像素在直角坐標系中的新坐標。這個轉換的目的,特別是R和6.2832(2pi)的選擇,我認為是將轉換後的圖像限定到原畫布大小之內的作用。同時這個步驟最終導致了圖像的變形。
x = r * image_height / R;
y = a * image_width / 6.2832;
filterpixel.x = x;
filterpixel.y = y;
}
這僅僅是一段偽代碼而已,真正的執行過程要複雜一些,如果繼續深入下去就嚴重跑題了,所以深入的討論還是請參見那個鏈接,自己去看吧。
最後引用那個網站的一句話作為結束語。
「If used creatively, the effect is worth more than just its novelty.」
希望各位在看過本文之後能有所啟發。口動不如心動,心動不如行動,期待各位的作品。
Michael 滑板圖案設計 |
靳埭強設計作品—中國銀 |
bekker廣告設計精選 |
倫敦國際書展—台灣出版 |
HORNALL ANDERSON 設計作 |
朗意品牌顧問 |
設計·生活·創業---山東 |
''東方之星''大學生設計 |
SPOON國外一本新銳時尚攝 |
首架北京奧運主題彩色飛 |
你見過這樣可愛的月餅禮 |
花樣手提袋圖片 |
中國「包裝之星2005」獲獎 |
Liora Saad 包裝設計圖片 |
優秀包裝設計作品 |
redocn優秀包裝作品(二) |
redocn優秀包裝作品 |
05年精美中秋包裝作品 |
精美包裝作品圖片 |
Lina Seo 包裝設計 |
香港正形設計學校包裝作品 |
煙盒包裝設計 |
國際廣告創意圖片004 |
廣告版式設計 Kimberly Knig |
包裝及廣告版式設計 ron gri |
Sony公司優秀廣告圖片 |
創意無限!優秀公益廣告作品 |
創意無限!優秀公益廣告作品 |
微軟經典平面廣告組圖圖片 |
一組喜力的平面廣告 |
平面廣告設計圖片 |
第十屆中國廣告節獲獎作品選 |
全國環境保護公益廣告大賽獲 |
韓國化妝品廣告圖片 |