小圖形排列問題,以阿基米德螺線為例:
其極坐標方程為: r=aθ
分析: 其每一點的坐標可以化為(aθcosθ,aθsinθ),那么只要讓圖形以此坐標排列就ok了哈,而且為了效果美觀,當然隨著排列還應(yīng)該轉(zhuǎn)動,手動排列不是最佳選擇,這里用jsf實現(xiàn),分三步
一、變量: 我們將原參數(shù)與所需變量分別對應(yīng)如下: 原參數(shù) 變量 θ angle a parameter (x,y) (a,b)
定義這些變量和初始值如下:
var angle=Math.PI/4; var parameter=10; var a,b;
初始值可以根據(jù)需要更改(注意,angle這里為弧度值)。
二、位置與旋轉(zhuǎn):
經(jīng)過開始的分析我們可知每點圖形的坐標為 a=parameter*angle*Math.cos(angle); b=parameter*angle*Math.sin(angle); 我們可以應(yīng)用fw.getDocumentDOM().moveSelectionBy({x:a, y:b}, false, false);將圖形移動到制定位置
旋轉(zhuǎn)可由fw.getDocumentDOM().rotateSelection()函數(shù)實現(xiàn),其參數(shù)為角度值,弧度變成角度需要乘以180,函數(shù)如下:
fw.getDocumentDOM().rotateSelection(angle*180, "autoTrimImages transformAttributes");
三、循環(huán):
這樣便可完成了對一個圖形的排列,不過我們目標是排列多個圖形,所以要加個循環(huán),但我們注意到每次排列,angle的值必須不同,角度是也必須變化的,于是我們加個perde變量,表示每個圖形轉(zhuǎn)過的角度,通過與angle的疊加來實現(xiàn)角度變化的效果。
圖形的獲得可由復(fù)制粘貼得到,這里就不再多說了。
出處:藍色理想
責任編輯:moby
上一頁 下一頁 阿基米德螺線排列小圖形 [2]
◎進入論壇Photoshop、Fireworks版塊參加討論
|