欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript多種圖形實現(xiàn)代碼實例

 更新時間:2020年06月28日 08:31:42   作者:aTeacher  
這篇文章主要介紹了JavaScript多種圖形實現(xiàn)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.小星星

設有如下的曲線參數(shù)方程:

N=5

x = r*sin(nθ)*cos(θ)

y = r*sin(nθ)*sin(θ) (0≤θ≤2π)

用循環(huán)依次取θ值為0~2π(每次增量為π/64),計算出X和Y,在canvas畫布中將坐標點(X,Y)用線連起來,可繪制出一個一個5瓣花卉圖案。

編寫如下的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="#EEEEFF";
   context.fillRect(0,0,400,300);
   context.strokeStyle="blue";
   context.lineWidth=2;
   context.beginPath();
   var r=120;          // 下面可進行修改的語句 (3)
   var n=5;           // 下面可進行修改的語句 (3)
   for (theta=0;theta<=2*Math.PI;theta+=Math.PI/64)
   {
     b=r*Math.sin(n*theta);  // 下面可進行修改的語句 (3)
     x=200+b*Math.cos(theta);
     y=150+b*Math.sin(theta);
     if (theta==0)
      context.moveTo(x,y);
     else
      context.lineTo(x,y);
   }
   context.stroke();
  }
</script>
</head>
<body onload="draw('myCanvas');">
<canvas id="myCanvas" width="400" height="300"></canvas>
</body>
</html>

將上述HTML代碼保存到一個html文本文件中,再在瀏覽器中打開包含這段HTML代碼的html文件,可以看到在瀏覽器窗口中繪制出如圖1所示的5瓣花卉圖案。

圖1 5瓣花卉圖案1

我們將上面程序中標識的語句1“var r=120;”修改為“var r=50;”,適當減小初始半徑,使得繪制的圖案不會超出畫布的范圍,在將標識的語句3“b=r*Math.sin(n*theta);”修改為“b=r*(1+Math.sin(n*theta)/2);”,則在畫布中繪制出如圖2所示的5瓣花卉圖案。

圖2 5瓣花卉圖案2

這個圖案比圖1中的圖案的感覺是中間向外擴展了,使得中心部位出現(xiàn)空白。再次修改語句3為“b=r*(2+Math.sin(n*theta)/2);”,以增大中間部分的空白,則在畫布中繪制出如圖3所示的圖案,像小星星嗎?

圖3 小星星圖案

上面程序中的n值也可修改,例如在上面繪制小星星圖案的程序中,將標識語句2

“var n=5;”修改為“var n=6;”,則在畫布中繪制出如圖4所示的圖案。像六角雪花圖案嗎?

圖4 六角雪花圖案

我們這樣想一想,若將n的值修改為一個實數(shù)(有小數(shù)部分)會這樣呢?例如,將

“var n=5;”修改為“n=5.05;”,則在畫布中繪制出如圖5所示的圖案。

圖5 未封閉的小星星圖案線

2.環(huán)帶

由圖5知,θ值取0~2π時,正好繪制一圈,由于n取非整數(shù)時,曲線不封閉,因此,若取θ值為0~10π,繪制5圈,可得到一個環(huán)帶圖案。為讀者引用和下面講述方便,給出完整HTML文件內(nèi)容如下。

<!DOCTYPE html>
<head>
<title>環(huán)帶</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="#EEEEFF";
   context.fillRect(0,0,400,300);
   context.strokeStyle="red";
   context.lineWidth=2;
   context.beginPath();
   var n=5.05;
   k=10;
   for (theta=0;theta<=k*Math.PI;theta+=Math.PI/120)
   {
    var r=110*(1+Math.cos(n*theta)/5);
    var x =200+ r*Math.cos(theta);
    var y =150+ r*Math.sin(theta);
    if (theta==0)
      context.moveTo(x,y);
    else
      context.lineTo(x,y);
   }
   context.stroke();
  }
</script>
</head>
<body onload="draw('myCanvas');">
<canvas id="myCanvas" width="400" height="300"></canvas>
</body>
</html>

在瀏覽器中打開包含這段HTML代碼的html文件,可以看到在畫布中繪制的五角環(huán)帶,如圖6所示。

圖6 五角環(huán)帶

將上面程序中的n值由“n=5.05”修改為“n=9.05”,則在畫布中繪制出如圖7所示的環(huán)帶。

圖7 九角環(huán)帶

若將上面程序中的n值修改為9.2,且將k值修改為12,則在畫布中繪制出如圖8所示的圓環(huán)帶。

圖8 n值為9.2時的圓環(huán)

若將上面程序中的n值修改為5.5,且將k值修改為12,則在畫布中繪制出如圖9所示的圓環(huán)。

圖9 n值為5.5時的圓環(huán)

在繪制圖9的程序中,再將語句“var r=110*(1+Math.cos(n*theta)/5);”修改為

“var r=90*(1+Math.cos(n*theta)/2);”則在畫布中繪制出如圖10所示的圖案。

圖10 n值為5.5時的另一環(huán)狀圖案

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 實例分析瀏覽器中“JavaScript解析器”的工作原理

    實例分析瀏覽器中“JavaScript解析器”的工作原理

    本文主要對javascript解析器的工作原理進行實例分析,具有很好的參考價值,下面就跟小編一起來看下吧
    2016-12-12
  • js代碼實現(xiàn)點擊按鈕出現(xiàn)60秒倒計時

    js代碼實現(xiàn)點擊按鈕出現(xiàn)60秒倒計時

    這篇文章主要為大家詳細介紹了js代碼實現(xiàn)點擊按鈕出現(xiàn)60秒倒計時,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-12-12
  • Javascript中click與blur事件的順序詳析

    Javascript中click與blur事件的順序詳析

    這篇文章主要給大家介紹了關于Javascript中click與blur事件順序的相關資料,文中介紹的非常詳細,對大家學習或者使用Javascript中的click與blur事件具有一定的參考學習價值,需要的朋友可以下面來一起看看吧。
    2017-04-04
  • JavaScript canvas實現(xiàn)鏡像圖片效果

    JavaScript canvas實現(xiàn)鏡像圖片效果

    這篇文章主要為大家詳細介紹了JavaScript canvas實現(xiàn)鏡像圖片效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JS基于對象的特性實現(xiàn)去除數(shù)組中重復項功能詳解

    JS基于對象的特性實現(xiàn)去除數(shù)組中重復項功能詳解

    這篇文章主要介紹了JS基于對象的特性實現(xiàn)去除數(shù)組中重復項功能,結(jié)合實例形式較為詳細的分析了js基于key值唯一性實現(xiàn)數(shù)組去重的具體步驟與相關操作技巧,需要的朋友可以參考下
    2017-11-11
  • 5個讓你眼前一亮的JavaScript裝飾器技巧

    5個讓你眼前一亮的JavaScript裝飾器技巧

    JavaScript?裝飾器是一種特殊的功能,允許在不修改源代碼的情況下動態(tài)修改類和函數(shù)的行為,本文將介紹五個讓你眼前一亮的裝飾器技巧,包括裝飾函數(shù)參數(shù)、裝飾類屬性、裝飾函數(shù)返回值和裝飾函數(shù)調(diào)用,需要的朋友可以參考下
    2023-06-06
  • bootstrap table實現(xiàn)點擊翻頁功能 可記錄上下頁選中的行

    bootstrap table實現(xiàn)點擊翻頁功能 可記錄上下頁選中的行

    這篇文章主要介紹了bootstrap table實現(xiàn)點擊翻頁功能,可記錄上下頁選中的行,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • redux處理異步action解決方案

    redux處理異步action解決方案

    這篇文章主要介紹了redux處理異步action解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • 使用JavaScript實現(xiàn)二值化圖像

    使用JavaScript實現(xiàn)二值化圖像

    這篇文章主要為大家詳細介紹了使用JavaScript將圖像轉(zhuǎn)換為黑白二值圖的兩種方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01
  • javascript設置頁面背景色及背景圖片的方法

    javascript設置頁面背景色及背景圖片的方法

    這篇文章主要介紹了javascript設置頁面背景色及背景圖片的方法,涉及JavaScript動態(tài)操作頁面元素屬性的相關技巧,需要的朋友可以參考下
    2015-12-12

最新評論