使用骰子作畫

2021-08-27 08:17:01 字數 1284 閱讀 9209

本文參考 阮一峰老師《骰子作畫的演算法》

1計算灰度值方法

/* 任何顏色都由紅、綠、藍三基色組成,假如原來某點的顏色為rgb(r,g,b),那麼,我們可以通過下面幾種方法,將其轉換為灰度:

1.浮點演算法:gray=r*0.3+g*0.59+b*0.11

2.整數方法:gray=(r*30+g*59+b*11)/100

3.移位方法:gray =(r*77+g*151+b*28)>>8;

4.平均值法:gray=(r+g+b)/3;

5.僅取綠色:gray=g;*/

2.骰子作畫演算法

1.第一步,將分割成16畫素x16畫素的小方塊。  (分割的方塊越小 ,模擬圖生成的效果越好)

2. 計算小方塊內的每乙個畫素點  將每個畫素點的灰度值存入陣列

3. 計算每乙個小方塊陣列額灰度值的平均值  並用1~6之間的乙個整數來表示 

4. 用骰子繪製

var canvas = document.createelement('canvas'); // 將分好的塊繪製在畫布上顯示處來

var context = canvas.getcontext('2d');

var poixl = ;

// 獲取的原始尺寸

//切割小方塊的邊長

注意:本文是使用js完成  ,在使用getimagedata方法獲取畫素的時候可能會遇到源的問題 ,只需要將和js**放在同一伺服器下或者放在可以跨越訪問的伺服器上,我用了hbuilder的內建web伺服器避免了源汙染的問題 。

骰子作畫的演算法

程式設計師scott macdonald做了乙個很有趣的專案 骰子作畫。他用黑底白點的骰子。模擬出一張人像 把影象放大,就可以看得更清楚。他一共用了2500多顆骰子。最後的成品就是這樣。任何一張都可以用骰子模擬出來,演算法非常簡單 將分成若干個區域,每個區域經過計算以後,用1 6之間的乙個整數表示,...

骰子作畫的演算法

程式設計師scott macdonald做了乙個很有趣的專案 骰子作畫。他用黑底白點的骰子。具體來說,第一步,將分割成16畫素x16畫素的小方塊。for int i 0 i pic width 16 i 整數1,表示骰子朝上的一面有1個白點 整數2,表示有2個白點 以此類推。白點越少,表示這個區域越...

Python實現骰子作畫演算法

在看到阮一峰的網路日誌中 骰子作畫的演算法 時,不經對其產生了濃厚的興趣,聯想到之前瀏覽到的程式設計師個性 注釋,發現裡面很多的注釋都可以用骰子作畫的 實現輸出,於是自己用python寫了乙份 翠花兒,上 from pil import image if name main img image.op...