成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

HTML5利用CanvasAPI組合圖形

 在HTML5中有11種組合圖形的方式,只要把他們?cè)O(shè)置到context.globalCompositeOperation中就可以了,我這里做了一個(gè)小例子來(lái)證明各種圖形組合方式的結(jié)果

在魚(yú)臺(tái)等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,全網(wǎng)整合營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,魚(yú)臺(tái)網(wǎng)站建設(shè)費(fèi)用合理。

HTML代碼很簡(jiǎn)單,就2個(gè)控件,一個(gè)是下拉列表,讓用戶(hù)選擇組合方式,并且一旦用戶(hù)做出了選擇,就執(zhí)行js函數(shù)draw(id),從而在第二個(gè)控件canvas上根據(jù)用戶(hù)當(dāng)前選擇的組合方式進(jìn)行畫(huà)圖。第二個(gè)控件就是一個(gè)canvas,用于顯示畫(huà)圖的內(nèi)容。

  1. <!DOCTYPE html> 
  2. <head> 
  3. <meta charset="UTF-8"> 
  4. <title>HTML5 Combine Shape DEMO</title> 
  5. <script type="text/javascript" src="js/drawCombinedShape.js"></script> 
  6. </head> 
  7.  
  8. <body></body> 
  9. <h3>canvas:顯示組合圖形</h3> 
  10.  
  11. <!-- 創(chuàng)建一個(gè)下拉列表來(lái)讓用戶(hù)選擇按照什么方式來(lái)組合圖形 --> 
  12. <!-- 一旦用戶(hù)做出了選擇,就會(huì)觸發(fā)onchange處理函數(shù),于是調(diào)用js函數(shù),讓其在canvas組件上畫(huà)圖 --> 
  13. <select id="selectCombineMethod" onchange="draw('canvas')"> 
  14. <option >source-atop</option> 
  15. <option>source-in</option> 
  16. <option>source-out</option> 
  17. <option>source-over</option> 
  18. <option>destination-atop</option> 
  19. <option>destination-in</option> 
  20. <option>destination-out</option> 
  21. <option>destination-over</option> 
  22. <option>lighter</option> 
  23. <option>copy</option> 
  24. <option>xor</option> 
  25. </select> 
  26. <br><br> 
  27.  
  28. <!-- 指定一個(gè)canvas元素用于顯示結(jié)果 --> 
  29. <canvas id="canvas" width="1000” height="1000"/> 
  30. <br><br> 

js函數(shù)就是負(fù)責(zé)響應(yīng)下拉列表的onchange事件從而在canvas上畫(huà)圖,它先繪制原圖形(distination,在這里是一個(gè)藍(lán)色正方形),然后取得用戶(hù)選擇的組合方式,再根據(jù)此方式畫(huà)出新圖形(source,在這里是一個(gè)紅色的圓):

  1. /** 
  2.  *  This file is confidential by Charles.Wang 
  3.  *  Copyright belongs to Charles.wang 
  4.  *  You can make contact with Charles.Wang (charles_wang888@126.com) 
  5.  */ 
  6.   
  7.   
  8.  function draw(id){ 
  9.      
  10.     //得到用戶(hù)選擇的圖形組合選項(xiàng): 
  11.     var selectComponent=document.getElementById("selectCombineMethod"); 
  12.     //取得用戶(hù)的選擇的索引 
  13.     var selectedIndex =selectComponent.selectedIndex; 
  14.     //得到用戶(hù)的選擇的值,也就是選擇的圖形組合策略 
  15.     var selectedCombinedStrategy = selectComponent.options[selectedIndex].value; 
  16.      
  17.     //得到頁(yè)面上的畫(huà)布對(duì)象 
  18.     var canvas=document.getElementById(id); 
  19.     if(canvas ==null) 
  20.     return false; 
  21.      
  22.     var context = canvas.getContext('2d'); 
  23.     //畫(huà)原來(lái)的圖形,藍(lán)色正方形 
  24.     context.fillStyle="blue"; 
  25.     context.fillRect(40,40,60,60); 
  26.      
  27.     //將用戶(hù)選擇的圖形組合方式設(shè)定到context中 
  28.     context.globalCompositeOperation=selectedCombinedStrategy; 
  29.      
  30.     //畫(huà)新圖形,是一個(gè)紅色的圓 
  31.     //這時(shí)候,context會(huì)根據(jù)圖形的組合策略來(lái)決定如何繪制這2個(gè)圖形 
  32.     context.beginPath(); 
  33.     context.fillStyle="red"; 
  34.     context.arc(40+60,40+60,30,0,Math.PI*2,false); 
  35.     context.fill(); 
  36.      
  37.    
  38.      
  39.      
  40.  } 

 

實(shí)驗(yàn)可以根據(jù)你用戶(hù)的選擇來(lái)顯示不同結(jié)果:

這里的source是紅色的圓(新圖形),distination是藍(lán)色正方形(舊圖形)

 

  • source-atop=新圖形中(新 and 老)+老圖形中(!(新 and 老))

HTML5 利用Canvas API 組合圖形

 

  • source-in=新圖形中(新 and 老)

HTML5 利用Canvas API 組合圖形

 

  • source-out=新圖形中(?。ㄐ?and 老))

HTML5 利用Canvas API 組合圖形

 

  • source-over(默認(rèn)值)=老圖形中(?。ㄐ?and 老))+新圖形中(全部)

HTML5 利用Canvas API 組合圖形

 

  • destination-atop=老圖形中(新 and 老)+新圖形中(!(新 and 老))

HTML5 利用Canvas API 組合圖形

 

  • destination-in=老圖形中(新 and 老)

HTML5 利用Canvas API 組合圖形

 

  • destination-out=老圖形中(?。ㄐ?and 老))

HTML5 利用Canvas API 組合圖形

 

  • destination-over=老圖形中(全部)+新圖形中(!(新 and 老))

HTML5 利用Canvas API 組合圖形

 

  • lighter=老圖形中(!(新 and 老))+ 新圖形中(!(新 and 老))+新 and 老(色彩疊加) 

HTML5 利用Canvas API 組合圖形

 

  • copy=新圖形中(全部)

HTML5 利用Canvas API 組合圖形

 

  • xor(對(duì)稱(chēng)差)=老圖形中(!(新 and 老))+新圖形中(!(新 and 老))

HTML5 利用Canvas API 組合圖形

當(dāng)前名稱(chēng):HTML5利用CanvasAPI組合圖形
鏈接分享:http://jinyejixie.com/article4/poshoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站網(wǎng)站收錄、手機(jī)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、定制網(wǎng)站、App開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
徐水县| 漳州市| 临夏市| 贺州市| 无极县| 株洲市| 安阳市| 峨边| 旌德县| 黄大仙区| 锡林浩特市| 郴州市| 湟中县| 合肥市| 阳信县| 廊坊市| 咸丰县| 阿坝县| 永平县| 宁乡县| 绥芬河市| 盐城市| 视频| 保山市| 保山市| 吉水县| 贵德县| 乐陵市| 云南省| 盐边县| 互助| 宾阳县| 淳安县| 亚东县| 昌图县| 合作市| 左权县| 奉贤区| 拜城县| 哈巴河县| 新晃|