久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

canvas中線段的端點與連接點詳解

在Canvas中,線段也是路徑中的一種,被稱之為線性路徑。在Canvas中繪制線性路徑主要用到moveTo(x,y)、lineTo(x,y)和stroke()幾個方法,讓我們來回憶下線寬的用法。

function drawLine(){      cxt.lineWidth = 3;      cxt.moveTo(10, 10);      cxt.lineTo(120, 100);      cxt.stroke();  }

上面的代碼我們就可以繪制一條寬度為3像素的線段。

上一章我們還提到線寬與像素邊界的內容主要為:
如果你在某2個像素的邊界處繪制一條1像素寬的線段,那么該線段實際會占據2個像素的寬度;

因為當你在像素邊界處繪制一條1像素寬度的垂直線段時,canvas的繪圖環境對象會試著將半個像素畫在邊界中線的右邊,將另外半個像素畫在邊界中線的左邊。

然而,在一個整像素的范圍內繪制半個像素寬的線段是不可能的,所以在左右兩個方向上的半個像素都被擴展為1個像素。(具體內容可參考第三章內容);

今天這章內容我們用來看看線段的其它屬性 lineCap,lineJoin。

線段的端點(lineCap)

在繪制線段時,你可以控制線段的端點,也就是 “線帽” (lineCap)的樣子,在Canvas的繪圖環境對象中,控制線段端點的屬性正好也叫作lineCap。
線段端點的樣式有三個值,分別是butt, roundm, square, 默認是為butt; round與square 都會給線段的端點畫上一頂帽子。

  • butt:線段端點的默認樣式

  • round:在端點處添加一個半圓,其半徑是線寬的一半。

  • square: 在端點處添加一個矩形,長度與線寬一致,寬度是線寬的一半。

看到這里貌似我們也看不出什么名堂。那我們就先繪制出來,你就會瞬間明白了。要不怎么都說要數據可視化呢!

function lineCap(){      cxt.lineWidth = 20;      cxt.strokeStyle = '#16a085';        cxt.beginPath();      cxt.lineCap = 'butt';      cxt.moveTo(20, 20);      cxt.lineTo(300, 20);      cxt.stroke();        cxt.beginPath();      cxt.lineCap = 'round';      cxt.moveTo(20, 100);      cxt.lineTo(300, 100);      cxt.stroke();        cxt.beginPath();      cxt.lineCap = 'square';      cxt.moveTo(20, 180);      cxt.lineTo(300, 180);      cxt.stroke();  }

canvas中線段的端點與連接點詳解

看到上面的圖片是不是瞬間就知道了lineCap的屬性值的樣式,是不是也感受到了可視化的魅力。

線段的連接點(lineJoin)

在繪制線段或者矩形時,我們可以控制兩條線段連接處的拐點,也就是線段的連接點。
在canvas繪圖環境中線段的連接點是由 lineJoin屬性控制的。
lineJoin屬性也有三個值分別為: round, bevel, miter,默認是miter。

  • round:額外填充一個圓弧,圓弧為兩條線段拐角的外邊緣的點用圓弧連接而成,

  • bevel:額外填充一個三角形,三角形為兩條線段拐角的外邊緣的點用直線連接而成。

  • miter:額外填充一個多邊形,多邊形為兩條線段拐角外邊緣的延長線的交點形成。

同樣我們繪制出來看一下

function lineCap(){      cxt.lineWidth = 20;      cxt.strokeStyle = '#16a085';        cxt.beginPath();      cxt.lineJoin = 'round';      cxt.moveTo(20, 20);      cxt.lineTo(300, 20);      cxt.lineTo(300, 60);      cxt.stroke();        cxt.beginPath();      cxt.lineJoin = 'bevel';      cxt.moveTo(20, 100);      cxt.lineTo(300, 100);      cxt.lineTo(300, 140);      cxt.stroke();        cxt.beginPath();      cxt.lineJoin = 'miter';      cxt.moveTo(20, 180);      cxt.lineTo(300, 180);      cxt.lineTo(300, 220);      cxt.stroke();  }

canvas中線段的端點與連接點詳解

我們再來看看線段連接點的具體構建方式

canvas中線段的端點與連接點詳解

提示

當我們使用miter樣式來繪制線段的連接點時,我們還可以指定一個miterLimit屬性
miterLimit: 表示斜接線(miter)的長度與二分之一線寬的比值;

斜接線的計量方式如下圖

canvas中線段的端點與連接點詳解

從圖中我們可以看出,如果兩個線段的夾角很小的話,那么斜接線的長度有可能會變的非常長,它與二分之一線寬的比值就會超出你所指定的miterLimit的屬性值,

這時候瀏覽器會將以bevel的方式來繪制線段的連接點。

總結

Canvas繪圖環境中線段的相關屬性

屬性 描述 默認值
lineWidth 以像素為單位的線段寬度 非零的正數 1
lineCap 繪制線段的端點樣式 butt,round,square butt
lineJoin 線段連接點的樣式 bevel,round,miter miter
miterLimit 斜接線與二分之一線寬的比值 非零的正數 10

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
www在线观看黄色| 高清一区二区三区| 日本欧美一区| 久久国际精品| 美女在线视频一区| 日本99精品| 久久国产精品久久w女人spa| 亚洲一级少妇| 亚洲午夜精品久久久久久app| 亚洲一区二区三区久久久| 亚洲在线国产日韩欧美| 国产亚洲精aa在线看| 日韩中文视频| 91欧美极品| 亚洲高清久久| 蜜臀a∨国产成人精品| 亚洲视频国产| 91综合久久爱com| 欧美日韩日本国产亚洲在线| 91成人精品| 99精品视频在线| 一区二区亚洲精品| 欧美日韩国产一区二区在线观看| 久久精品三级| 亚洲欧美网站| 99热精品久久| 一区二区日韩免费看| | 国产调教一区二区三区| 欧美精品一卡| 亚洲性视频在线| 久久99精品久久久久久园产越南 | 在线手机中文字幕| 久久久久久一区二区| 日韩国产欧美一区二区三区| 国产亚洲激情| 日韩在线卡一卡二| 亚洲精品麻豆| 青草国产精品| 免费一级欧美片在线观看网站 | 久久久久久久久丰满| 久久精品国内一区二区三区| 久久精选视频| 精品亚洲自拍| 少妇精品久久久一区二区三区| 999久久久91| 欧美日韩亚洲在线观看| 国产亚洲观看| 奇米狠狠一区二区三区| 亚洲视频国产| 在线精品观看| 日韩精品亚洲专区| 亚洲精品第一| 91精品国产自产在线丝袜啪| 高清一区二区三区| 亚洲日本三级| 日韩国产欧美视频| 久久国际精品| 欧美天堂一区二区| 欧美精品一区二区久久| 久久国产中文字幕| 99久久夜色精品国产亚洲1000部| 免费成人性网站| 99久久激情| 超碰99在线| 最近高清中文在线字幕在线观看1| 午夜日韩影院| 91精品国产调教在线观看| 欧美日一区二区三区在线观看国产免| 欧美中文一区二区| 国产精品一区二区免费福利视频| 日韩三区在线| 国产情侣久久| 亚洲一级影院| 欧美99久久| 国产乱码精品| 日本视频一区二区| 亚洲乱码久久| 久久久亚洲欧洲日产| 99日韩精品| 成人午夜在线| 人人草在线视频| 中文字幕乱码亚洲无线精品一区| 亚洲一区欧美二区| 国产精品videossex久久发布| 亚洲自拍另类| 91精品精品| 久久先锋影音| 久久99青青| 福利欧美精品在线| 九色porny丨国产首页在线| 91久久亚洲| 中文字幕成人| 欧洲精品一区二区三区| 国产精品极品在线观看| av综合电影网站| 1000部精品久久久久久久久| 欧美成人日韩| 国产日韩免费| 精品亚洲美女网站| 在线观看免费一区二区| 狠狠久久婷婷| 最新国产精品| 五月国产精品| 亚洲精品极品| 午夜久久av| 日韩午夜av| 免费国产亚洲视频| 噜噜噜躁狠狠躁狠狠精品视频| 久久一级电影| 午夜精品一区二区三区国产| 91国内精品| 亚洲免费福利| 国产精品乱战久久久| 欧美综合精品| 蜜桃久久精品一区二区| 日本少妇一区二区| 亚洲有吗中文字幕| 日韩在线观看不卡| 日本不卡视频一二三区| 羞羞答答国产精品www一本| 一区二区精品伦理...| 在线观看视频免费一区二区三区| 麻豆精品视频在线观看视频| 欧美不卡高清一区二区三区| 羞羞答答国产精品www一本| 日韩在线观看一区二区| 国产精品中文字幕制服诱惑| 久久精品一本| 在线天堂资源www在线污| 午夜久久久久| 免费久久精品视频| 久久国产三级| 男女性色大片免费观看一区二区 | 日韩av有码| 麻豆亚洲精品| 国产剧情一区二区在线观看| 日日夜夜免费精品| 亚洲日产av中文字幕| 午夜久久99| 久久中文字幕av| 精品亚洲a∨| 亚洲国产一区二区三区在线播放| 国产日韩欧美三级| 桃色一区二区| 日韩精品视频网站| 成人羞羞在线观看网站| 中文在线а√在线8| 色婷婷色综合| 91一区二区三区四区| 日本精品黄色| 天堂√8在线中文| 日韩精品中文字幕第1页| 中文字幕一区二区三区四区久久| 91看片一区| 国产精品久久久久久久久久久久久久久| 国产日韩电影| 日本精品另类| 国产精品亚洲片在线播放| 亚洲精品一二| 日韩精品中文字幕一区二区| 六月丁香综合在线视频| 久久久精品久久久久久96| 久久精品在线| 日韩av资源网| 久久国产免费| 日韩中文字幕1| 久久精品午夜| 视频一区欧美精品| 精品亚洲成人| 亚洲无线观看| 欧美一区久久久| 日本成人中文字幕| 日韩黄色大片网站| 奶水喷射视频一区| 亚洲精品成人图区| 日本午夜精品| 日韩国产欧美视频| 日韩精品乱码av一区二区| 亚洲五月综合| 亚洲综合五月| 亚洲毛片网站| 视频一区视频二区中文字幕| 亚洲视频播放| 黄色日韩在线| 蜜桃91丨九色丨蝌蚪91桃色| 欧美激情三区| 丝袜美腿一区二区三区| 日韩中文av| 亚洲婷婷丁香| 黑人精品一区| 日韩精品久久理论片| 精品一区视频| 美国av一区二区| bbw在线视频| 日本综合精品一区| 日韩欧美看国产| 精品一区电影| 国产精品nxnn| 蜜臀91精品国产高清在线观看|