九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JavaScript圖形實(shí)例:黃金螺旋線

      黃金螺旋線是根據(jù)斐波那契數(shù)列畫出來的螺旋曲線。自然界中存在許多黃金螺旋線的圖案,是自然界最完美的經(jīng)典黃金比例。例如,如圖1所示的海螺身上的曲線,圖2所示的漩渦,圖3所示的人耳。

圖1 海螺

圖2  漩渦

 

圖3  人耳

      又如,名畫蒙娜麗莎的微笑整個畫面所呈現(xiàn)的數(shù)學(xué)美,如圖4所示。

 

圖4 蒙娜麗莎的微笑

      黃金螺旋線的繪制思想是:以斐波那契數(shù)為邊長的正方形拼成長方形,然后在正方形里面畫一個90度的弧線,連接起來的弧線就是黃金螺旋線。

       例如,先繪制一個邊長為8的正方形,再在邊長為8的正方形左側(cè)貼著其底邊的左沿線作出一個邊長為5的正方形,如圖5;接著按照圖5的樣子分別作出邊長為3和邊長為2的正方形,最后作出兩個邊長為1的正方形。這6個正方形構(gòu)成一個長為13、寬為8的長方形。 

圖5  6個正方形構(gòu)成一個長為13、寬為8的長方形

      在每個正方形內(nèi)畫出圓弧,順次連接起來作出一條如圖6所示的黃金螺旋線。 

圖6  作出的黃金螺旋線 

為在Canvas畫布中作出如圖6所示的黃金螺旋線,編寫如下的HTML代碼。

<!DOCTYPE html>

<head>

<title>黃金螺旋線</title>

<script type="text/javascript">

  function draw(id)

  {

     var canvas=document.getElementById(id);

     if (canvas==null)

        return false;

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

     context.fillStyle="red";

     context.fillRect(0,0,400,300);

     context.lineWidth=3;

     context.translate(80,100);

     var  r=20

     context.beginPath();

     context.arc(5*r,2*r,1*r,Math.PI,Math.PI*2,true);

     context.arc(4*r,2*r,2*r,0,Math.PI*3/2,true);

     context.arc(4*r,3*r,3*r,Math.PI*3/2,Math.PI,true);

     context.arc(6*r,3*r,5*r,Math.PI,Math.PI/2,true);

     context.arc(6*r,0,8*r,Math.PI/2,Math.PI*2,true);

     context.strokeStyle = 'yellow';

     context.stroke();

  }

</script>

</head>

<body onload="draw('myCanvas');">

<canvas id="myCanvas" width="400" height="300"></canvas>

</body>

</html>

      將上述HTML代碼保存到一個html文本文件中,再在瀏覽器中打開包含這段HTML代碼的html文件,可以看到在瀏覽器窗口中繪制出一條黃金螺旋線,如圖7所示。

 

圖7  黃金螺旋線

為在Canvas畫布中作出如圖4所示的黃金螺旋線,編寫如下的HTML代碼。

<!DOCTYPE html>

<head>

<title>黃金螺旋線</title>

<script type="text/javascript">

  function draw(id)

  {

     var canvas=document.getElementById(id);

     if (canvas==null)

        return false;

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

     context.fillStyle="red";

     context.fillRect(0,0,200,300);

     context.lineWidth=3;

     context.translate(40,40);

     var  r=10

     context.beginPath();

     context.arc(4*r,6*r,1*r,Math.PI,Math.PI*2,false);

     context.arc(3*r,6*r,2*r,0,Math.PI/2,false);

     context.arc(3*r,5*r,3*r,Math.PI/2,Math.PI,false);

     context.arc(5*r,5*r,5*r,Math.PI,Math.PI*3/2,false);

     context.arc(5*r,8*r,8*r,Math.PI*3/2,Math.PI*2,false);

     context.arc(0,8*r,13*r,0,Math.PI/2,false);

     context.strokeStyle = 'yellow';

     context.stroke();

  }

</script>

</head>

<body onload="draw('myCanvas');">

<canvas id="myCanvas" width="200" height="300"></canvas>

</body>

</html>

       將上述HTML代碼保存到一個html文本文件中,再在瀏覽器中打開包含這段HTML代碼的html文件,可以看到在瀏覽器窗口中繪制出一條黃金螺旋線,如圖8所示。

 

圖8  人耳黃金螺旋線

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
使用HTML5 Canvas API中的clip()方法裁剪區(qū)域圖像
開發(fā)者值得關(guān)注的HTML5新特性Canvas
微信小程序中的canvas
html5之Canvas坐標(biāo)變換應(yīng)用
HTML5中Canvas(繪制)使用例子 | 一聚教程網(wǎng)
canvas 簡易時鐘
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服