用javascript實現類比火焰_javascript技巧

來源:互聯網
上載者:User
不太像,而且比較耗資原,不知道有沒有更好的辦法=.=
<html> <head> <title>火焰</title> <script language="JavaScript"> function PixelAxis(left, bottom, width, height, color) { color = color || "#000000"; var pixels = []; for(var i = 0; i <= width; i++) { pixels[i] = []; for(var j = 0; j<=height; j++) { var img = new Image(1, 1); img.style.backgroundColor = color; img.style.position = "absolute"; img.style.left = left + i; img.style.top = bottom - j; pixels[i][j] = img; document.body.appendChild(img); } } return function(x, y, color) { pixels[x][y].style.backgroundColor = color; } } function color(r, g ,b) { r = r > 0xF ? r.toString(16) : "0" + r.toString(16); g = g > 0xF ? g.toString(16) : "0" + g.toString(16); b = b > 0xF ? b.toString(16) : "0" + b.toString(16); return "#"+r+g+b; } function fireColor(seed) { return color(seed, Math.floor(0.5*seed), 0); } function spreadSeeds(width, height) { var pixel = PixelAxis(200, 200, width, height); var fc = []; fc[0] = []; return function() { for(var i = 0; i <= width; i++) { var s = Math.floor(255 * Math.random()); fc[0][i] = s; pixel(i, 0, fireColor(s)); } for(var i = 1; i < height; i++) { fc[i] = []; for(var j = 0; j <= width; j++) { var a = j > 0 ? fc[i-1][j-1] : 0; var b = fc[i-1][j]; var c = j < width ? fc[i-1][j+1] : 0; var s = Math.floor((a+b+c)/3); //alert(c); fc[i][j] = s; s = s-Math.floor(i/height*255); s = s > 0 ? s : 0; pixel(j, i, fireColor(s)); } } } } </script> </head> <body bgcolor="#000000"> </body> <script> var f = spreadSeeds(60, 120); setInterval("f()",1); </script> </html>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.