canvas實現(xiàn)剪紙漏洞效果

剪紙漏洞效果主要是利用了canvas的非零環(huán)繞規(guī)則
簡單來說就是canvas fill填充的是同一路徑順時針和逆時針中間的部分蔼夜,簡稱
非零環(huán)繞
效果如圖


var canvas_2=document.getElementById("canvas_2");
var can2_context=canvas_2.getContext("2d");
var width_2=canvas_2.width
var height_2=canvas_2.height
var testx=300
var testy=300
function drawCutouts(){

    can2_context.beginPath();
    addOurterRectanglePath()
    addrect()
    addTrianglePath()
    addarc()
    can2_context.fill()
}

function addOurterRectanglePath(){
     can2_context.rect(110,25,370,335)
     can2_context.closePath()
}


function rect(x,y,w,h,direction){

    if(direction){
        can2_context.moveTo(x,y);
        can2_context.lineTo(x,y+h)
        can2_context.lineTo(x+w,y+h)
        can2_context.lineTo(x+w,y)
    }else{
        can2_context.moveTo(x,y)
        can2_context.lineTo(x+w,y)
        can2_context.lineTo(x+w,y+h)
        can2_context.lineTo(x,y+h)

    }
    can2_context.closePath()
}
function addrect(){
    rect(310,55,70,35,true)  //true為逆時針
}
function addTrianglePath(){
   
   can2_context.moveTo(400,200)
   can2_context.lineTo(250,115)
   can2_context.lineTo(200,200)
   can2_context.closePath()

}



function addarc(){
    if(testy>335){testy=25}
    testy=testy+1
    
    can2_context.arc(testx,testy,40,0,Math.PI*2,true)
   
}

function hi(){
   can2_context.clearRect(0,0,width_2,height_2)
   drawCutouts()

   requestAnimationFrame(hi)

}
hi()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洞焙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異犹菇,居然都是意外死亡,警方通過查閱死者的電腦和手機芽卿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門揭芍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卸例,你說我怎么就攤上這事称杨。” “怎么了筷转?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵姑原,是天一觀的道長。 經(jīng)常有香客問我呜舒,道長锭汛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任袭蝗,我火速辦了婚禮唤殴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘到腥。我一直安慰自己眨八,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布左电。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪篓足。 梳的紋絲不亂的頭發(fā)上段誊,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天,我揣著相機與錄音栈拖,去河邊找鬼连舍。 笑死,一個胖子當(dāng)著我的面吹牛涩哟,可吹牛的內(nèi)容都是我干的索赏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼贴彼,長吁一口氣:“原來是場噩夢啊……” “哼潜腻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起器仗,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤融涣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后精钮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體威鹿,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年轨香,在試婚紗的時候發(fā)現(xiàn)自己被綠了忽你。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡臂容,死狀恐怖科雳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情策橘,我是刑警寧澤炸渡,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站丽已,受9級特大地震影響蚌堵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜沛婴,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一吼畏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧嘁灯,春花似錦泻蚊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽没卸。三九已至,卻和暖如春秒旋,著一層夾襖步出監(jiān)牢的瞬間约计,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工迁筛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留煤蚌,地道東北人。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓细卧,卻偏偏與公主長得像尉桩,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子贪庙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內(nèi)容