2010-07-05 36 views
5

我需要一種算法來繪製雲,或像雲一樣的形狀。顯然,我不希望他們都是相似的。
我應該使用什麼來生成相關係列的X,Y座標來繪製雲彩?
我打算在SVG或Canvas中執行此操作我如何畫雲?

+2

@Mitch小麥 - 可能是我沒有使用正確的話。在谷歌的前幾頁上,雲計算和亞馬遜等搜索結果。 – 2010-07-05 03:42:41

+3

這個地方有什麼問題?這個問題怎麼一直持續了一個小時,沒有人提出鮑勃羅斯的提法? – 2010-07-05 04:42:21

+0

@Brahma Ghosh,修正:http://stackoverflow.com/questions/3177121/how-do-i-paint-clouds/3177352#3177352 – Dolph 2010-07-05 05:22:11

回答

4

您可以使用SVG feTurbulence濾鏡基元生成Perlin噪聲,這可用於創建雲狀紋理。

一些幫助和示例:

Inkscape矢量圖形編輯器也有預定義的SVG濾鏡大集合,看到hereexample在一些文本上只使用其中的一些。 「噪音填充」一個使用feTurbulence,可能很容易調整。 Inkscape還有一個GUI,用於調整每個過濾器的參數,選擇任何形狀,然後在菜單中選擇「過濾器>過濾器編輯器...」。

11

這取決於您要去哪種雲。你可以嘗試Perlin noise,這是很受遊戲開發者的歡迎。

+0

我需要在SVG中實現它 – 2010-07-05 03:43:11

+0

如何告訴它何時開始關閉形狀?我是否必須手動執行此操作,或者有沒有等式呢? – 2010-07-05 03:45:06

0

如果在畫布中實現並且想要蓬鬆的雲形而不是噪聲類型,那麼我會畫一個隨機長度的矩形,然後首先向兩側添加不同大小的圓,然後到頂部以獲得雲效果。你將不得不做一些數學計算,以確保雲彩不會顯示在矩形下方,並且矩形的頂部沒有任何直線部分。但它不應該難以在畫布中實現。

+0

或者只是合併了很多圈子 - 所以你不會因爲直線部分 – 2010-07-06 09:15:05

+0

是真的而煩惱。我正在從馬克指出的那個人那裏挖掘我的想法。 – qw3n 2010-07-06 14:52:01

3

爲了給你的樹朋友,畫很多幸福的小事故。

我推薦畫布 - 你可以用畫筆瘋狂!

我想祝你畫畫愉快,上帝保佑我的朋友。

0

該代碼使得一個顏色數組一串圓圈,也許它會幫助你的雲

for (var i = 0; i < 12; i++) 
    { 
     for (var j = 0; j < 12; j++) 
     { 
     var ctx = document.getElementById('c1').getContext('2d'); 
     ctx.strokeStyle = 'rgb(0,' + Math.floor(255 - 42.5 * i) + ',' + 
     Math.floor(255 - 42.5 * j) + ')'; 
     ctx.beginPath(); 
     ctx.arc(40 + j * 25, 40 + i * 25, 10, 0, Math.PI * 2, true); 
     ctx.stroke(); 
     } 
    } 
0

產生氣泡(圓或水平橢圓)的集羣,走形狀的聯盟每個雲。