真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用html5和JavaScript創(chuàng)建一個(gè)繪圖程序

這篇文章主要介紹“怎么用html5和JavaScript創(chuàng)建一個(gè)繪圖程序”,在日常操作中,相信很多人在怎么用html5和JavaScript創(chuàng)建一個(gè)繪圖程序問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”怎么用html5和JavaScript創(chuàng)建一個(gè)繪圖程序”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

目前成都創(chuàng)新互聯(lián)公司已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管運(yùn)營、企業(yè)網(wǎng)站設(shè)計(jì)、宿州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

本文將引導(dǎo)你使用canvas和JavaScript創(chuàng)建一個(gè)簡單的繪圖程序。

首先準(zhǔn)備容器Canvas元素,接下來所有的事情都會(huì)在JavaScript里面。

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1.   

獲取繪圖環(huán)境,context對(duì)象提供了用于在畫布上繪圖的方法和屬性

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. context = document.getElementById('canvasInAPerfectWorld').getContext("2d");  

開始繪圖過程

首先我們需要存儲(chǔ)繪圖路徑點(diǎn)坐標(biāo),addClick函數(shù)添加坐標(biāo)點(diǎn)值到數(shù)組

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. var clickX = new Array();   

  2. var clickY = new Array();   

  3. var clickDrag = new Array();//存儲(chǔ)路徑點(diǎn)  

  4. var paint;//是否繪制,mousedown時(shí)置為true  

  5. function addClick(x, y, dragging)   

  6. {   

  7.   clickX.push(x);   

  8.   clickY.push(y);   

  9.   clickDrag.push(dragging);   

  10. }  

redraw函數(shù)每次調(diào)用整個(gè)canvas就會(huì)重新繪制一次。首先我們清空畫布上內(nèi)容,設(shè)置繪制線條顏色粗細(xì)線條連接方式。然后

兩點(diǎn)之間繪制一段路徑,將數(shù)組中的坐標(biāo)點(diǎn)依次繪制出來

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. function redraw(){   

  2.   context.clearRect(0, 0, context.canvas.width,   context.canvas.height); // 清除畫布內(nèi)容   

  3.      

  4.   context.strokeStyle = "#df4b26";//設(shè)置線條顏色   

  5.   context.lineJoin = "round";//當(dāng)兩條線條交匯時(shí),創(chuàng)建圓形邊角   

  6.   context.lineWidth = 5;//線條粗細(xì)   

  7.                

  8.   for(var i=0; i < clickX.length; i++) {           

  9.     context.beginPath();//開始一條路徑,或重置當(dāng)前的路徑   

  10.     if(clickDrag[i] && i){   

  11.       context.moveTo(clickX[i-1], clickY[i-1]);   

  12.      }else{   

  13.        context.moveTo(clickX[i]-1, clickY[i]);   

  14.      }   

  15.      context.lineTo(clickX[i], clickY[i]);   

  16.      context.closePath();   

  17.      context.stroke();//繪制路徑   

  18.   }   

  19. }  

繪制過程需要的事件

1 mousedown事件

繪圖這點(diǎn)擊到畫布上時(shí),將觸發(fā)該事件執(zhí)行。調(diào)用了addClick函數(shù),并將paint置為true。

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. $('#canvas').mousedown(function(e){   

  2.   var mouseX = e.pageX - this.offsetLeft;   

  3.   var mouseY = e.pageY - this.offsetTop;   

  4.   paint = true;   

  5.   addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop);   

  6.   redraw();   

  7. });  

2 mousemove事件

mousedown中設(shè)置的paint為true后,鼠標(biāo)移動(dòng)時(shí)觸發(fā)mousemove事件執(zhí)行,將鼠標(biāo)移動(dòng)的所有點(diǎn)記錄下來,并不斷調(diào)用redraw重繪畫布。

JavaScript Code復(fù)制內(nèi)容到剪貼板

  1. $('#canvas').mousemove(function(e){   

  2.    if(paint){   

  3.      addClick(e.pageX - this.offsetLeft, e.pageY - this.offsetTop, true);   

  4.      redraw();   

  5.    }   

  6.  });   

3 mouseup事件

mouseup鼠標(biāo)點(diǎn)擊后松開或者拖拽后松開,表示繪制完成該路徑,將paint置為false。

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. $('#canvas').mouseup(function(e){   

  2.    paint = false;   

  3.  });  

4 mouseleave事件

mouseleave鼠標(biāo)離開canvas元素,將paint置為false。

XML/HTML Code復(fù)制內(nèi)容到剪貼板

  1. $('#canvas').mouseleave(function(e){   

  2.   paint = false;   

  3. });  

到此,關(guān)于“怎么用html5和JavaScript創(chuàng)建一個(gè)繪圖程序”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!


網(wǎng)頁名稱:怎么用html5和JavaScript創(chuàng)建一個(gè)繪圖程序
分享網(wǎng)址:http://weahome.cn/article/jehoii.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部