久久精品五月,日韩不卡视频在线观看,国产精品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综合
蜜桃成人精品| 国产suv精品一区| 国产欧美久久一区二区三区| 久久蜜桃av| 久久中文字幕一区二区| 欧美三区不卡| 午夜精品影视国产一区在线麻豆| 日本美女一区| 国产一区二区三区四区| 成人一区不卡| 国产一区二区三区不卡视频网站 | 日本欧美国产| 欧美三级第一页| 日本亚洲欧美天堂免费| 综合一区在线| 亚洲天堂日韩在线| 麻豆91精品| 亚洲v在线看| 福利一区二区| 欧美国产偷国产精品三区| 欧美激情网址| 美日韩一区二区三区| 国产精品videossex| 国产精品美女久久久久久不卡| 亚洲免费影院| 蜜桃视频在线网站| 波多野结衣久久精品| 亚洲精品88| 日韩精品欧美| 免费av一区| 免费人成网站在线观看欧美高清| 麻豆成人在线| 美女国产一区| 婷婷综合电影| 亚洲精品极品| 欧美日韩亚洲三区| 国产精品高清一区二区| 麻豆传媒一区二区三区| 最新中文字幕在线播放 | 日韩**一区毛片| 国产精品视频一区视频二区| www.九色在线| 欧美性感美女一区二区| 免费不卡在线观看| 一区二区亚洲视频| 亚洲精品乱码| 国产高清视频一区二区| 91亚洲国产成人久久精品| 午夜日韩福利| 91嫩草精品| 欧美三级网址| 首页亚洲欧美制服丝腿| 美日韩一区二区三区| 亚洲成av在线| 日韩激情综合| 成人污污视频| 四虎国产精品免费久久| 另类综合日韩欧美亚洲| 黄色精品网站| 久久亚洲精品伦理| 九九九精品视频| 神马日本精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩精品一区二区三区免费视频| 九九久久国产| 成人午夜在线| 国产亚洲精品v| 日本午夜精品| 久久电影tv| 亚洲三级网址| 国产高潮在线| 亚洲一二av| 岛国av在线网站| 男人的天堂亚洲一区| 日本在线视频一区二区| 国产精品地址| 日韩黄色大片网站| 亚洲日本国产| 不卡一二三区| 天堂av一区| 久久久久久久久99精品大| 日本亚洲视频在线| 日韩精品免费一区二区在线观看| 日韩精品一区二区三区中文字幕| 色偷偷色偷偷色偷偷在线视频| 久久xxxx精品视频| 麻豆国产精品一区二区三区| 欧美精选一区二区三区| 国产欧美另类| 色婷婷精品视频| 久久国内精品自在自线400部| 成人一区而且| 一区二区三区网站| 久久久久蜜桃| 欧美aa在线视频| 免费国产自久久久久三四区久久| 国产精品3区| 国产精品美女久久久浪潮软件| 国产一区一一区高清不卡| 蜜桃一区二区三区在线| 五月天综合网站| 老牛国内精品亚洲成av人片| 天海翼精品一区二区三区| 亚洲成人国产| 婷婷综合六月| 日韩av中文字幕一区二区| 老牛影视一区二区三区| 日韩精品1区| 精品日韩一区| 国产亚洲精aa在线看| 日韩精品一区二区三区中文| 久久国产精品久久w女人spa| 久久亚洲精品中文字幕蜜潮电影| 日本激情一区| 欧美a在线观看| 国产精品一区二区三区av| 丝袜美腿亚洲色图| 亚洲天堂久久| 久久久久国产精品一区二区| 国产专区精品| 日韩精品三级| 免费视频一区二区| 亚洲精品2区| 日韩高清成人| 国产一区二区三区亚洲| 国产精品一国产精品k频道56| 亚洲免费专区| 蜜臀av亚洲一区中文字幕| 夜夜嗨一区二区| 国产韩日影视精品| 神马日本精品| 成人精品中文字幕| 国产99在线| 97人人精品| 久久久久国产| 欧美亚洲日本精品| 婷婷成人在线| 国产成人久久精品一区二区三区| 亚洲人成精品久久久| 欧美日韩日本国产亚洲在线 | 麻豆精品少妇| 国产视频欧美| 国产一区二区三区精品在线观看| 日韩精品亚洲aⅴ在线影院| 久久影院资源站| 国产精品亚洲综合在线观看| 中文字幕在线看片| 香蕉成人av| 国产精品一区二区三区四区在线观看| 日本亚洲视频| 蜜臀久久99精品久久久久久9| 亚洲免费精品| 亚洲色诱最新| 视频一区欧美精品| 视频国产精品| 国产日韩视频| 国产精品午夜一区二区三区| 国产欧美一区二区色老头| 国产免费久久| 精品美女视频 | 亚洲香蕉视频| 亚洲人妖在线| 国产精品tv| 四虎8848精品成人免费网站| 三级小说欧洲区亚洲区| 欧美日中文字幕| 视频一区中文字幕| 日本国产一区| 久久久久久自在自线| 日韩免费福利视频| 九一精品国产| 蜜桃视频免费观看一区| 国产欧美高清| 日本蜜桃在线观看视频| 亚洲免费网址| 国产剧情一区| 999国产精品| 久久大逼视频| 国产一区二区亚洲| 久久精品高清| 亚洲欧美网站在线观看| 国产精品成人3p一区二区三区| 午夜av不卡| 久久电影一区| 精品国产网站| 久久高清精品| 久久国产精品色av免费看| 精品国内亚洲2022精品成人| 伊人久久婷婷| 欧美私人啪啪vps| av在线日韩| 亚洲免费专区| 欧美三级精品| 视频一区二区欧美| 国产一区二区亚洲| 精品91久久久久| 加勒比视频一区| 日韩中文字幕| 国产一区二区三区自拍| 欧美日韩尤物久久|