日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Win10系列:JavaScript图形

發布時間:2025/5/22 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Win10系列:JavaScript图形 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在頁面中添加canvas元素會在頁面上生成一個矩形的位圖畫布,可以使用JavaScript在畫布上實時繪制圖形圖像。在繪制圖形時,需要先調用畫布的getContext函數獲取與該畫布相關的用于繪制圖形(如2D圖形、3D圖形)的對象,然后使用這個對象調用不同的圖形函數來繪制相應的圖形。下面分別介紹2D圖形中幾種常見圖形的繪制方法。

(1)直線

在繪制直線時,先使用moveTo(x,y)函數設置直線的起始點,參數x和y表示起始點的橫坐標和縱坐標,以像素為單位,接著通過lineTo(x, y) 函數設置直線的終點,參數x和y表示終點的橫坐標和縱坐標,也以像素為單位,最后調用stroke函數繪制直線。下面給出一段繪制直線的示例代碼:

//獲取相應的畫布

var canvasObject = document.getElementById("canvasID");

//獲取用于繪制2D圖形的對象

var contextObject = canvasObject.getContext("2d");

contextObject.strokeStyle = "rgb(0, 162, 232)"; //設置線條顏色

contextObject.moveTo(28, 20); //設置直線的起點

contextObject.lineTo(78, 50); //設置終點

contextObject.stroke(); //畫直線

上面的代碼首先以"canvasID"為參數調用document對象的getElementById函數從相應的頁面中查找id屬性值為canvasID的畫布對象,并賦值給canvasObject變量,通過變量canvasObject調用畫布對象的getContext函數獲取與該畫布有關的用于繪制2D圖形的對象,并賦值給contextObject變量;接著通過contextObject變量調用strokeStyle屬性來設置線條的顏色,并調用moveTo和lineTo函數分別設置直線的起點和終點;最后調用stroke函數繪制直線。

(2)矩形

可以使用fillRect(x, y, width, height)函數繪制帶有背景色的矩形,也可以使用strokeRect(x, y, width, height)函數僅繪制矩形的輪廓,其中參數x和y用來設置矩形在畫布上的位置,它們是相對于畫布的左上角的,width和height 分別表示矩形的寬度和高度,以像素為單位。使用fillRect函數繪制矩形時,可以通過fillStyle屬性設置填充顏色,該屬性的顏色值可以是 RGB、預定義的顏色(如red紅色、blue藍色等)、十六進制顏色或者漸變色;使用strokeRect函數繪制矩形時,可以通過strokeStyle屬性設置線條的顏色,顏色的取值方法與fillStyle屬性相同。

(3)多邊形

多邊形(如三角形、四邊形等)是通過繪制多條直線組合成的。在繪制多邊形時,先使用moveTo函數在畫布上設置一個起始點,然后根據多邊形的邊數多次使用lineTo函數畫出多條首尾相接的直線來組合成多邊形。

(4)圓形

可以使用arc(x, y, radius, startAngle, endAngle, anticlockwise)函數繪制圓形,其中參數x和y表示圓心的坐標,x是橫坐標,y是縱坐標,都以像素為單位;radius表示圓的半徑,startAngle和endAngle表示圓弧的起始弧度和終止弧度;anticlockwise的數據類型是BOOL類型,當取值為true時,會沿著逆時針方向繪制圓,否則將沿著順時針方向繪制。

介紹了常見圖形的繪制方法后,下面以一個應用程序為例演示如何使用JavaScript在畫布上繪制這些圖形。新建一個JavaScript的Windows應用商店的空白應用程序項目,將其命名為DrawGraphApplication。打開default.html文件,在body元素中添加一個canvas元素,為了便于檢索控件,設置畫布的id屬性值為canvasID。相應的HTML代碼片段如下所示:

<body>

<canvas id="canvasID" width="400" height="320"></canvas>

</body>

為了控制畫布在應用程序界面上的顯示外觀,在default.css文件中添加如下代碼來控制畫布的布局。

/*設置畫布的背景色和在應用程序界面上的顯示位置*/

#canvasID {

background-color: gray;

margin-left: 20px;

margin-top: 20px;

}

隨后雙擊打開default.js文件,在"args.setPromise(WinJS.UI.processAll());"語句后先添加如下代碼來獲得畫布并獲取與該畫布相關的用于繪制2D圖形的對象。

//獲取相應的畫布

var canvasObject = document.getElementById("canvasID");

//從該畫布中得到用于繪制2D圖形的對象

var contextObject = canvasObject.getContext("2d");

//設置所有圖形的線條顏色為白色

contextObject.strokeStyle = "rgb(255,255,255)";

//設置所有圖形的線條粗細為2像素

contextObject.lineWidth = 2;

在上面的代碼中,以"canvasID"為參數調用document對象的getElementById函數查找id屬性值為canvasID的畫布對象,并賦值給canvasObject變量,然后通過變量canvasObject調用畫布對象的getContext函數獲取與該畫布有關的用于繪制2D圖形的對象,并賦值給contextObject變量,接著通過contextObject變量調用用于繪制2D圖形的對象的strokeStyle屬性來設置所有圖形的線條顏色為白色,并通過lineWidth屬性設置所有圖形的線條寬度為2像素。

緊接著依次添加繪制直線、矩形、三角形、圓形、六邊形和填充正方形的代碼,下面來分別介紹繪制每種圖形的代碼。繪制直線的JavaScript代碼片段如下所示:

//繪制一條直線

contextObject.beginPath(); //重新設置繪圖路徑

//直線的起點

contextObject.moveTo(100, 50);

//調用lineTo函數設置終點

contextObject.lineTo(30, 120);

contextObject.stroke();

上面的代碼首先通過contextObject變量調用beginPath函數重新設置繪圖路徑,然后通過moveTo函數設置開始點的x軸坐標為100像素、y軸坐標為50像素,并調用lineTo函數設置直線終點的x軸坐標為30像素、y軸坐標為120像素,最后調用stroke函數繪制直線。

在繪制矩形時,也是先調用beginPath函數重新設置繪圖路徑,接著調用strokeRect函數在畫布中繪制一個x軸坐標為150像素、y軸坐標為50像素、寬度為70像素、高度為80像素的矩形。相應的代碼片段如下所示:

//繪制一個矩形

contextObject.beginPath(); //啟動一個新的路徑,以便繪制下一個圖形

//繪制矩形輪廓

contextObject.strokeRect(150, 50, 70, 80);

繪制三角形的JavaScript代碼片段如下所示:

//繪制一個三角形

contextObject.beginPath();

//設置要開始繪制三角形的起點

contextObject.moveTo(320, 50);

//依次畫三角形的三條邊

contextObject.lineTo(270, 120);

contextObject.lineTo(370, 120);

contextObject.lineTo(320, 50);

contextObject.stroke();

在上面的代碼中,首先通過contextObject變量調用beginPath函數重新設置繪圖路徑,然后通過moveTo函數設置開始點的x軸坐標為320像素、y軸坐標為50像素,接著先后三次調用lineTo函數依次設置三條邊的終點坐標為(270,120)、(370,120)和(320,50),最后調用stroke函數繪制線條。

在繪制圓形時,調用beginPath函數重新設置繪圖路徑之后,接著調用arc函數設置圓心的x軸坐標為70像素,y軸坐標為200像素,圓的半徑是38像素,圓的起始弧度和終止弧度分別為0弧度和2π弧度,繪制方向為逆時針方向,最后調用stroke函數繪制圓形,相應的JavaScript代碼片段如下所示:

// 繪制一個圓形

contextObject.beginPath();

//調用arc函數繪制一個整圓

contextObject.arc(70, 200, 38, 0, 2 * Math.PI, true);

contextObject.stroke();

繪制六邊形時,同樣先使用beginPath函數重新設置繪圖路徑,然后調用moveTo函數設置起始點的x軸坐標為190像素、y軸坐標為160像素,接著先后多次調用lineTo函數依次設置六條邊的終點坐標為(150, 190)、(150, 230)、(190, 260)、(230, 230)、(230, 190)和(190, 160),最后調用stroke函數繪制線條。相應的JavaScript代碼片段如下所示:

//繪制一個六邊形

contextObject.beginPath();

//設置要開始繪制六邊形的起點

contextObject.moveTo(190, 160);

//依次畫六邊形的六條邊

contextObject.lineTo(150, 190);

contextObject.lineTo(150, 230);

contextObject.lineTo(190, 260);

contextObject.lineTo(230, 230);

contextObject.lineTo(230, 190);

contextObject.lineTo(190, 160);

contextObject.stroke();

以上繪制的是沒有填充色的圖形,下面繪制一個填充了顏色的正方形。調用beginPath函數重新設置繪圖路徑之后,通過fillStyle屬性設置填充色為淺灰色,接著使用fillRect函數繪制一個x軸坐標為280像素、y軸坐標為160像素、寬度和高度都為80像素的正方形,相應的代碼片段如下所示:

//繪制一個填充色為淺灰色的正方形

contextObject.beginPath();

//設置填充色

contextObject.fillStyle = "lightgray";

contextObject.fillRect(280, 160, 80, 80);

啟動調試,所繪制的圖形就在畫布上顯示出來了,效果如圖19-31所示。

圖19-31 在畫布上繪制圖形的效果

轉載于:https://www.cnblogs.com/finehappy/p/6645434.html

總結

以上是生活随笔為你收集整理的Win10系列:JavaScript图形的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。