麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > HTML5 > 正文

詳解HTML5 Canvas繪制不規(guī)則圖形時(shí)的非零環(huán)繞原則

2024-09-05 07:21:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

路徑方向與非零環(huán)繞原則
平時(shí)我們畫(huà)的圖形都是規(guī)規(guī)矩矩的,那么如果我們用線條畫(huà)了個(gè)抽象派作品,就像下面這圖一樣,童鞋們知道怎么用fill()染色呢?
2016321115025779.jpg (344×331)

這里就要用到數(shù)學(xué)上的一個(gè)方法——非零環(huán)繞原則,來(lái)判斷哪塊區(qū)域是里面,哪塊區(qū)域是外面。接下來(lái),我們具體來(lái)看下什么是非零環(huán)繞原則。
2016321115056981.jpg (540×332)

首先,我們得給圖形確定一條路徑,只要“一筆畫(huà)”并且“不走重復(fù)路線”就可以了。如圖,標(biāo)出的是其中的一種路徑方向。我們先假定路徑的正方向?yàn)?(其實(shí)為-1啥的也都可以,正負(fù)方向互為相反數(shù),不是0就行),那么反方向就是其相反數(shù)-1。
然后,我們?cè)谧勇窂角懈畹膸讐K區(qū)域內(nèi)的任意一點(diǎn)各取一條方向任意的射線,這里我只取了三個(gè)區(qū)域的射線為例,來(lái)判斷這三塊區(qū)域是“里面”還是“外面”。
接下來(lái),我們就來(lái)判斷了。S1中引出的射線L1,與S1的子路徑的正方向相交,那么我們就給計(jì)數(shù)器+1,結(jié)果為+1,在外面。
S2中引出的射線L2,與兩條子路徑的正方向相交,計(jì)數(shù)器+2,結(jié)果為+2,在外面。
S3中引出的射線L3,與兩條子路徑相交,但是其中有一條的反方向,計(jì)數(shù)器+1-1,結(jié)果為0,在里面。沒(méi)錯(cuò),只要結(jié)果不為0,該射線所在的區(qū)域就在外面。


繪制圓環(huán)
記得arc方法嗎?它的最后一個(gè)參數(shù)就是判斷是路徑方向的,如果是路徑相反的兩個(gè)同心圓在一起,圖上色會(huì)有什么神奇的效果呢?
2016321115120337.jpg (440×335)

下面我們通過(guò)代碼來(lái)實(shí)現(xiàn)它。

JavaScript Code復(fù)制內(nèi)容到剪貼板
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 一区二区三区日韩精品 | 男人的天堂视频网站 | 欧美电影在线观看 | 久久亚洲春色中文字幕久久 | 亚洲一区 国产 | 色视频在线观看 | 26uuu成人人网图片 | 天天看成人免费毛片视频 | 毛片三区 | 国内精品国产三级国产a久久 | 27xxoo无遮挡动态视频 | jizzyouxxxx | 色操网 | 亚洲国产高清视频 | 黄视频网站免费观看 | 刘亦菲一区二区三区免费看 | 黄色片观看 | 中午字幕无线码一区2020 | 精品国产91久久久久久久妲己 | 成人性视频欧美一区二区三区 | 免费欧美一级视频 | 国产精品视频一区二区三区综合 | 欧美人xx| 91美女福利视频 | 一级做受毛片免费大片 | 成人短视频在线观看免费 | 鲁丝片一区二区三区免费入口 | 久久久www成人免费精品 | 欧美精品成人一区二区在线观看 | 免费观看视频在线观看 | 黄色免费高清网站 | 亚洲一级毛片 | 色av成人天堂桃色av | 欧美巨根| 亚洲精品成人在线视频 | 摸逼逼视频 | 国产精品久久久久久久久久久久久久久久 | 黄色大片www | 欧美一级不卡视频 | 日韩在线激情 | 91短视频在线观看视频 |