成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

JavaScript實現像雪花一樣的Hexaflake分形

瀏覽:137日期:2023-10-22 09:38:55

編寫如下的函數:

function drawHexagon(x,y,L) { ctx.beginPath(); ctx.moveTo(x-sqrt3/2*L,y-L/2); ctx.lineTo(x-sqrt3/2*L,y+L/2); ctx.lineTo(x,y+L); ctx.lineTo(x+sqrt3/2*L,y+L/2); ctx.lineTo(x+sqrt3/2*L,y-L/2); ctx.lineTo(x,y-L); ctx.closePath(); ctx.fillStyle = '#00FFFF'; ctx.fill(); }

函數中sqrt3的值為Math.sqrt(3)。該函數的功能是:以坐標(x,y)為中心點,繪制一個邊長為L的正六邊形并進行填充,如下圖所示。

JavaScript實現像雪花一樣的Hexaflake分形

編寫如下的調用語句:

var x=250; var y=250; var L=200; drawHexagon(x,y-2*L/3,L/3); drawHexagon(x,y,L/3); drawHexagon(x,y+2*L/3,L/3); drawHexagon(x-sqrt3/3*L,y+L/3,L/3); drawHexagon(x-sqrt3/3*L,y-L/3,L/3); drawHexagon(x+sqrt3/3*L,y+L/3,L/3); drawHexagon(x+sqrt3/3*L,y-L/3,L/3);

可以繪制出如下圖所示的7個小正六邊形,這7個小正六邊形正好填充在以(x,y)為中心邊長為L的大正六邊形中。

JavaScript實現像雪花一樣的Hexaflake分形

Hexaflake分形圖案的構造過程是:以(x,y)為中心點繪制一個邊長為L的正六邊形并進行顏色填充;在這個正六邊形中找到7個點,以這7個點為中心分別繪制7個邊長為L/3的正六邊形并進行顏色填充,替換掉原來邊長為L的正六邊形;重復以上操作直至達到要求的層數,可以繪制出Hexaflake分形圖案,如下圖所示。

JavaScript實現像雪花一樣的Hexaflake分形

Hexaflake分形采用遞歸過程易于實現,編寫如下的HTML代碼。

<!DOCTYPE html><head><title>Hexaflake分形</title></head><body><canvas style='border:3px double #996633;'></canvas><script type='text/javascript'> var canvas = document.getElementById(’myCanvas’); var ctx = canvas.getContext(’2d’); var maxdepth =4; var sqrt3=Math.sqrt(3); function drawHexagon(x,y,L) { ctx.beginPath(); ctx.moveTo(x-sqrt3/2*L,y-L/2); ctx.lineTo(x-sqrt3/2*L,y+L/2); ctx.lineTo(x,y+L); ctx.lineTo(x+sqrt3/2*L,y+L/2); ctx.lineTo(x+sqrt3/2*L,y-L/2); ctx.lineTo(x,y-L); ctx.closePath(); ctx.fillStyle = '#00FFFF'; ctx.fill(); } function drawHexaflake(n,x,y,L) { if(n>0) { drawHexaflake(n-1,x,y-2*L/3,L/3); drawHexaflake(n-1,x,y,L/3); drawHexaflake(n-1,x,y+2*L/3,L/3); drawHexaflake(n-1,x-sqrt3/3*L,y+L/3,L/3); drawHexaflake(n-1,x-sqrt3/3*L,y-L/3,L/3); drawHexaflake(n-1,x+sqrt3/3*L,y+L/3,L/3); drawHexaflake(n-1,x+sqrt3/3*L,y-L/3,L/3); } else drawHexagon(x,y,L); } drawHexaflake(maxdepth,250,250,200);</script></body></html>

在瀏覽器中打開包含這段HTML代碼的html文件,可以看到在瀏覽器窗口中繪制出的Hexaflake分形圖案,如下圖所示。

JavaScript實現像雪花一樣的Hexaflake分形

執行語句:

ctx.fillStyle='black';ctx.fillRect(0,0,500,500);

將屏幕背景設置為黑色,將繪制的正六邊形用白色填充,則在瀏覽器窗口中繪制出的Hexaflake分形圖案像雪花兒一樣,如下圖所示。

JavaScript實現像雪花一樣的Hexaflake分形

將Hexaflake分形的生成過程進行動態展示,編寫如下的HTML文件。

<!DOCTYPE html><head><title>Hexaflake分形</title></head><body><canvas style='border:3px double #996633;'></canvas><script type='text/javascript'> var canvas = document.getElementById(’myCanvas’); var ctx = canvas.getContext(’2d’); var depth =0; var sqrt3=Math.sqrt(3); function drawHexagon(x,y,L) { ctx.beginPath(); ctx.moveTo(x-sqrt3/2*L,y-L/2); ctx.lineTo(x-sqrt3/2*L,y+L/2); ctx.lineTo(x,y+L); ctx.lineTo(x+sqrt3/2*L,y+L/2); ctx.lineTo(x+sqrt3/2*L,y-L/2); ctx.lineTo(x,y-L); ctx.closePath(); ctx.fillStyle = '#FFFFFF'; ctx.fill(); } function drawHexaflake(n,x,y,L) { if(n>0) { drawHexaflake(n-1,x,y-2*L/3,L/3); drawHexaflake(n-1,x,y,L/3); drawHexaflake(n-1,x,y+2*L/3,L/3); drawHexaflake(n-1,x-sqrt3/3*L,y+L/3,L/3); drawHexaflake(n-1,x-sqrt3/3*L,y-L/3,L/3); drawHexaflake(n-1,x+sqrt3/3*L,y+L/3,L/3); drawHexaflake(n-1,x+sqrt3/3*L,y-L/3,L/3); } else drawHexagon(x,y,L); } function go() { ctx.fillStyle = '#000000'; ctx.fillRect(0,0,500,500); drawHexaflake(depth,250,250,200); depth++; if (depth>4) { depth=0; } } window.setInterval(’go()’,1500);</script></body></html>

在瀏覽器中打開包含這段HTML代碼的html文件,在瀏覽器窗口中呈現出如下圖所示的Hexaflake分形動態生成效果。

JavaScript實現像雪花一樣的Hexaflake分形

以上就是JavaScript實現像雪花一樣的Hexaflake分形的詳細內容,更多關于JavaScript Hexaflake分形的資料請關注好吧啦網其它相關文章!

標簽: JavaScript
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
色琪琪一区二区三区亚洲区| 在线观看三级视频欧美| 日韩图片一区| 日韩欧美电影一二三| 香蕉久久一区二区不卡无毒影院| 色综合一区二区三区| 欧美日韩一区二区三区四区| 亚洲色图在线播放| 国产风韵犹存在线视精品| 久久国产66| 国产亚洲va综合人人澡精品| 国产一区在线观看视频| 久久婷婷国产综合尤物精品| 综合久久给合久久狠狠狠97色| 成人av手机在线观看| 精品视频999| 天堂va蜜桃一区二区三区漫画版| 影音先锋国产精品| 久久精品视频一区二区三区| 国产精品18久久久久久久久| 亚洲欧美精品| 亚洲免费在线电影| 欧美久色视频| 337p粉嫩大胆噜噜噜噜噜91av| 精品一区二区精品| 日本久久一区二区| 亚洲国产综合91精品麻豆| 欧美日韩国产精品一区二区亚洲| 欧美一级国产精品| 国产又黄又大久久| 91国偷自产一区二区使用方法| 亚洲自拍偷拍欧美| 国产一区日韩一区| 快she精品国产999| 亚洲高清免费在线| 国产色综合网| 亚洲精品高清在线| 亚洲国产精品一区二区第四页av| 国产欧美日韩综合精品一区二区| av激情亚洲男人天堂| 91麻豆精品国产91久久久使用方法| 日韩精品电影在线| 久久亚洲图片| 日韩国产精品久久久久久亚洲| 乱码第一页成人| 免费人成在线不卡| 欧美日韩国产精品成人| 国产一区二区在线影院| 日韩欧美亚洲一区二区| 91在线视频免费91| 国产精品毛片久久久久久| 日韩视频久久| 青青青伊人色综合久久| 欧美日韩不卡在线| 成人av在线播放网站| 久久久久久久久久久久久女国产乱| 久久免费看少妇高潮| 亚洲影院一区| 国产成人精品亚洲日本在线桃色 | 国产一本一道久久香蕉| 日韩一区二区三区免费看 | 91小视频免费观看| 亚洲精品一区二区三区99| 91免费版在线| 国产目拍亚洲精品99久久精品| 高清不卡一区二区| 日韩欧美亚洲国产另类| av午夜精品一区二区三区| 精品女同一区二区| a4yy欧美一区二区三区| 精品福利一二区| 91免费看视频| 国产精品日日摸夜夜摸av| 欧美精品自拍| 中文字幕一区二区三区色视频| 欧美ab在线视频| 国产精品欧美精品| 极品裸体白嫩激情啪啪国产精品| 日韩伦理电影网| 亚洲黄色高清| 亚洲超碰精品一区二区| 久久一区中文字幕| 看片网站欧美日韩| 91精品久久久久久蜜臀| 国产美女一区二区三区| 日韩欧美的一区| 一色屋精品视频在线看| 一卡二卡三卡日韩欧美| 欧美一级二区| 精品在线免费观看| 欧美一区二区三区在线看| 欧美日本一区二区三区四区| 黑人精品欧美一区二区蜜桃 | 中文字幕在线观看不卡视频| 欧美日韩一区不卡| 欧美激情在线看| 色噜噜狠狠成人中文综合| 麻豆成人在线观看| 国产精品久久久久久久久搜平片| 欧美日韩色一区| 国产手机视频一区二区| 成人性生交大合| 成人av在线播放网站| 国产欧美日韩一区二区三区在线观看| 欧美日韩亚州综合| 国产91精品露脸国语对白| 国产精品视频久久一区| 最新中文字幕一区二区三区| a91a精品视频在线观看| 日韩av中文字幕一区二区| 91精品国产91综合久久蜜臀| 99精品偷自拍| 一区二区三区精品久久久| 91久久香蕉国产日韩欧美9色| 日韩成人午夜电影| 亚洲成色精品| 性做久久久久久免费观看欧美| 日韩精品影音先锋| 海角社区69精品视频| 日日夜夜一区二区| 91 com成人网| 亚洲天堂激情| 日本三级韩国三级欧美三级| 日韩欧美在线1卡| 国产成人一区在线| 欧美激情无毛| 国产日韩欧美一区二区| 亚洲国产婷婷综合在线精品| 椎名由奈av一区二区三区| 亚洲五月六月丁香激情| 成人av高清在线| 新狼窝色av性久久久久久| 欧美日韩久久不卡| 欧美日韩亚洲国产综合| 日韩网站在线看片你懂的| 亚洲精品日韩专区silk| 极品尤物av久久免费看| 国产麻豆视频一区二区| 国产成人一区二区精品非洲| 国产麻豆成人传媒免费观看| 国产精品卡一卡二| 国产免费成人在线视频| 亚洲精品成人悠悠色影视| 五月激情六月综合| 韩国精品主播一区二区在线观看 | 午夜精品久久久久影视| 欧美卡1卡2卡| 欧美视频四区| 欧美精品aⅴ在线视频| 欧美特黄一级| 理论电影国产精品| 国产精品久久波多野结衣| 久久九九精品| 国产精品激情电影| 一区在线视频观看| 亚洲欧美大片| 色伊人久久综合中文字幕| 99r精品视频| 国产精品一区在线观看乱码| 高清日韩电视剧大全免费| 尹人成人综合网| 老牛嫩草一区二区三区日本| 99re在线精品| 日产精品久久久久久久性色| 精品国产伦一区二区三区免费| 亚洲综合欧美| 欧美区一区二| 国产精品一区二区免费不卡 | 欧美在线91| 激情欧美日韩一区二区| 亚洲欧美综合另类在线卡通| 91精品国产综合久久久久久久久久| 日韩一区二区免费看| 国产在线精品一区在线观看麻豆| 一区二区三区四区激情| 26uuu精品一区二区| 欧美在线高清视频| 久久精品电影| 亚洲视屏一区| 国产精品亚洲第一区在线暖暖韩国| 一区二区三区精品视频在线| 国产三级精品三级在线专区| 欧美日韩1234| 香蕉久久夜色精品| 好吊色欧美一区二区三区四区| 丁香婷婷深情五月亚洲| 久久精品久久综合| 国产麻豆视频精品| 在线播放精品| 成人免费在线视频| 欧美一区二区三区视频在线观看| 久久国产精品亚洲77777| 亚洲性色视频| 91蝌蚪porny| 丁香天五香天堂综合| 麻豆国产精品777777在线| 亚洲综合不卡| 亚洲理伦在线| 在线电影一区| 欧美jizzhd精品欧美喷水|