canvas標簽的有效屬性,canvas一些屬性

 2023-10-14 阅读 19 评论 0

摘要:lineTo(x,y) 定義線條結束坐標 moveTo(x,y) 定義線條開始坐標 ctx.stroke();繪制空心圖形 canvas標簽的有效屬性。ctx.fill();填充圖形 把當前路徑環繞起來的區域進行填充 ctx.fillStyle 填充顏色 ctx.strokeStyle 繪制圖形顏色 ctx.closePath();//讓圖形閉合,防止鋸齒

lineTo(x,y) 定義線條結束坐標

moveTo(x,y) 定義線條開始坐標

ctx.stroke();繪制空心圖形

canvas標簽的有效屬性。ctx.fill();填充圖形 把當前路徑環繞起來的區域進行填充

ctx.fillStyle 填充顏色

ctx.strokeStyle 繪制圖形顏色

ctx.closePath();//讓圖形閉合,防止鋸齒

canvas的方法有哪些。?ctx.beginPath();//?// 一個畫布內畫多個圖形,放了防止重繪之前的路徑,所以先把之前的路徑清除掉

?

非零環繞原則:

a 是用來判斷哪些區域屬于路徑內( 計算結果非0,即為路徑內 )。

canvas標簽的屬性?b 在路徑包圍的區域中,隨便找一點,向外發射一條射線,
c 和所有圍繞它的邊相交,
d 然后開啟一個計數器,從0計數,
e 如果這個射線遇到順時針圍繞,那么+1,
f 如果遇到逆時針圍繞,那么-1,
g 如果最終值非0,則這塊區域在路徑內。
備注:基數邊的區域一定在路徑內。

先填充與先描邊?

描邊的時候會占用原圖形的一部分(線寬的一半)

為了讓線寬符合要求,最好先填充再描邊,防止填充時覆蓋掉線寬的一半

csscanvas如何使用?? ctx.fill();?? ctx.stroke();

?

canvas在繪制線條的時候,會向左或向右偏移線寬的一半,然后進行繪制

如果線寬為奇數,邊緣顏色會變淺

html中canvas什么用。?

設置線帽樣式:

ctx.lineCap='butt'、'round'、'square'

butt是默認值

js創建canvas,round線頭是圓的

square線頭兩段各增加線寬的一半

?

設置交點樣式

html5canvas輸出?ctx.lineJoin = ‘miter' 、'round'、'bevel'

miter是默認值,兩邊向外延伸相交為尖尖角,
round是圓頭,
bevel兩邊相連為一個斜面。

?

內置矩形的API

canvas的有效屬性。ctx.rect(起點x,起點y,寬,高)

繪制一個描邊矩形

ctx.strokeRect(起點x,起點y,寬,高);

繪制一個填充矩形

ctx.fillRect(起點x,起點y,寬,高);

按照矩形的大小清除畫布中指定位置的內容

標簽canvas使用、ctx.clearRect(起點x,起點y,寬,高);

?

繪制虛線

ctx.setLineDash([5,3]);設置畫線的時候空白部分和實現部分的大小 5像素實線,3像素空白

?

畫弧( 畫的是路徑 )?

canvas css。ctx.arc( 圓心x軸坐標,圓心y軸坐標,半徑, 起點弧度,結束點弧度,是否逆時針畫(可選) )

?


設置文字的屬性
?ctx.font = 和css語法一樣。
?注意:這里設置字體大小時必須帶單位,單位支持css的所有表示方式。
注意:單獨設置字體大小不會生效,必須要加一個額外屬性樣式。
? ctx.font = '2rem 微軟雅黑';

?繪制描邊文字:
?ctx.strokeText( 文字, 參考x軸坐標,參考y軸坐標,限制文字的最大長度(可選) )

ctx.strokeText( '嘻嘻嘻嘻嘻嘻', 100, 100 );

繪制填充文字:
ctx.fillText( 文字, 參考x軸坐標,參考y軸坐標,限制文字的最大長度(可選) )

ctx.fillText( '咯咯咯咯咯咯', 100, 200 );

設置文字的水平對其方式:
ctx.textAlign = 'left || start' 、 'right || end' 、 'center'
默認值為start。

設置文字的垂直對其方式:
ctx.textBaseline = 'top' 、'bottom'、'middle'、'alphabetic'、'hanging'、'ideographic'
默認值為alphabetic。

?

狀態保存:

ctx.save();

?把當前的狀態(繪制環境的所有屬性)copy一份進行保存。

?

狀態回滾:
ctx.restore();
把最近保存的一次狀態作為當前狀態。

?

ctx.drawImage()
繪制圖像,有三種使用方式。

第一種,三參數版本:
把圖像繪制到指定的坐標。
必須要在img圖像下載完畢之后使用
img.onload = function() {
ctx.drawImage( img, 10, 10 );
}

第二種,五參數版本:
把圖像繪制到指定的坐標,并指定其大小。
必須要在img圖像下載完畢之后使用
img.onload = function() {
ctx.drawImage( img, 10, 10, 200, 200 );
}
第三種,九參數版本:
把裁剪到的部分圖像繪制到指定的坐標,并指定其大小。
必須要在img圖像下載完畢之后使用
img.onload = function() {
ctx.drawImage( img,
0, 0, 400, 400,
100, 100, 400, 400 );
}


ctx.isPointInPath()判斷點是否在路徑內(路徑必須繪制出來才可以
比如this.ctx.rect();然后必須this.ctx.stroke()才可以
 
requestAnimationFrame

?請求動畫幀函數,這個函數和setTimeout方法使用類似,
?他都是定時器,卻別在于setTimeout可以自由指定回調的觸發時間,
?而requestAnimationFrame函數回調的觸發是由瀏覽器來控制的。
?requestAnimationFrame( callback )
?備注:當瀏覽器重繪頁面的時候,就會調用這個callback,
?這樣callbackg的執行就會比較穩定,適合用來做流暢的動畫。

用法:

(function con() {
console.log(111);
requestAnimationFrame( con );
}());

?

轉載于:https://www.cnblogs.com/zmshare/p/6672239.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/136300.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息