日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
用Canvas繪制快應(yīng)用開(kāi)發(fā)工具的logo12.14

Canvas在Android原生開(kāi)發(fā)和傳統(tǒng)HTML5開(kāi)發(fā)的舞臺(tái)上都扮演著重要的角色,我們通過(guò)本文了解如何正確使用 canvas 畫(huà)布,以及如何通過(guò) canvas 繪制復(fù)雜的圖形及動(dòng)畫(huà)。

創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),偏關(guān)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:偏關(guān)等地區(qū)。偏關(guān)做網(wǎng)站價(jià)格咨詢:028-86922220

快應(yīng)用官方文檔提供了快應(yīng)用logo(如下圖)的繪制過(guò)程:

本文我們來(lái)學(xué)習(xí)一下快應(yīng)用開(kāi)發(fā)工具的logo(如下圖)的繪制過(guò)程:

分析圖片

用PhotoShop打開(kāi)路徑為的圖片,并添加參考線,主要為了獲取透明邊框的寬度(你可以理解為圖片文件的padding)、藍(lán)色邊框的寬度、藍(lán)色圓弧的厚度、紅色圓點(diǎn)的直徑以及紅色和藍(lán)色的具體RGB代碼。

因?yàn)榭鞈?yīng)用的Canvas不支持透明背景(原文如下),所以本文成品略有瑕疵。

繪制白色填充和藍(lán)色邊框

Canvas 繪圖的兩大基本繪制方式就是繪制填充和描邊。所謂填充,就是指用指定的內(nèi)容填滿所要繪制的圖形,最終生成一個(gè)實(shí)心的圖案,繪制填充矩形的方法是這樣的:ctx.fillRect(x, y, width, height);所謂描邊,就是沿著所要繪制的圖形邊緣,使用指定的內(nèi)容進(jìn)行描繪,最終生成的是空心的圖案,繪制描邊矩形的方法是這樣的ctx.strokeRect(x, y, width, height)。

看代碼望文生義就可以知道如果既要填充又要描邊,則不得不分別繪制兩次才能完成最終圖案,并且不能自定義描邊寬度。

為了能夠自定義描邊寬度,我們可以利用路徑來(lái)實(shí)現(xiàn)快應(yīng)用開(kāi)發(fā)工具的logo的藍(lán)色邊框和白色填充。繪制白色填充和藍(lán)色邊框的代碼如下:

 
 
 
 
  1. // 開(kāi)始繪制路徑 
  2.  
  3. ctx.beginPath(); 
  4.  
  5. // 起點(diǎn)(左上角) 
  6.  
  7. ctx.moveTo(r , r); 
  8.  
  9. // 繪制到第二個(gè)點(diǎn)的線段(左下角) 
  10.  
  11. ctx.lineTo(r, h - r ); 
  12.  
  13. // 繪制到第三個(gè)點(diǎn)的線段(右下角) 
  14.  
  15. ctx.lineTo(h - r , h - r); 
  16.  
  17. // 繪制到終點(diǎn)的線段(右上角) 
  18.  
  19. ctx.lineTo(h - r, r ); 
  20.  
  21. // 用線段閉合路徑(直接從終點(diǎn)連回到起點(diǎn)) 
  22.  
  23. ctx.closePath(); 
  24.  
  25. // 描邊寬度 
  26.  
  27. ctx.lineWidth = r; 
  28.  
  29. // 定義描邊樣式,本次是純色 
  30.  
  31. ctx.strokeStyle = '#4286f5'; 
  32.  
  33. // 繪制描邊 
  34.  
  35. ctx.stroke(); 
  36.  
  37. // 定義填充樣式,用另一種格式的純色 
  38.  
  39. // 注意順序是R(紅色)、G(綠色)、B(藍(lán)色)、A(不透明度)而不是A、R、G、B 
  40.  
  41. ctx.fillStyle = 'rgba(255,255,255,255)'; 
  42.  
  43. // 繪制填充 
  44.  
  45. ctx.fill(); 
  46.  
  47. 官方文檔和我的注釋都很詳細(xì),我補(bǔ)充幾點(diǎn): 
  48.  
  49. 1、strokeStyle和fillStyle的值可以為線性漸變或中心漸變,本文只討論純色的情況 
  50.  
  51. 2、rgba的四個(gè)參數(shù)分別為R(紅色)、G(綠色)、B(藍(lán)色)、A(不透明度)而不是常說(shuō)的A、R、G、B 
  52.  
  53. 繪制藍(lán)色圓弧和紅色圓點(diǎn) 
  54.  
  55. 藍(lán)色邊框和白色背景繪制了以后,下一步就是繪制藍(lán)色圓弧和紅色圓點(diǎn)了。紅色圓點(diǎn)的本質(zhì)上就是一個(gè)實(shí)心圓,繪制實(shí)心圓的方法就是閉合的圓形路徑填充顏色。代碼如下: 
  56.  
  57. // 繪制紅色圓點(diǎn) 
  58.  
  59. ctx.beginPath(); 
  60.  
  61. ctx.arc(h - 2 * s, h - 2.5 * s , s / 2 , 0, p * 2, false); 
  62.  
  63. ctx.fillStyle = 'rgb(234, 67, 53)' 
  64.  
  65. ctx.fill(); 
  66.  
  67. 繪制圓弧的arc()方法的五個(gè)參數(shù)分別為圓心X坐標(biāo)、圓心Y坐標(biāo)、半徑、圓弧起點(diǎn)、圓弧終點(diǎn)、是否逆時(shí)針。弧度的計(jì)算方法為角度乘以 2*PI/360,幾個(gè)關(guān)鍵方向的弧度如下:左:0或2*PI,右:PI,上:P/2,下:P/2*3 。 
  68.  
  69. 弧線段的填充、描邊方式和線段一樣。 
  70.  
  71. 我們?cè)倮L制較復(fù)雜的藍(lán)色圓弧: 
  72.  
  73. // 繪制藍(lán)色圓弧 
  74.  
  75. ctx.beginPath(); 
  76.  
  77. // arc()方法參數(shù)分別為圓心X坐標(biāo)、圓心Y坐標(biāo)、半徑、起點(diǎn)弧度、的終點(diǎn)弧度、是否是逆時(shí)針 
  78.  
  79. // 逆時(shí)針繪制空心內(nèi)圈 
  80.  
  81. ctx.arc(h / 2, h / 2, h/6, -p / 4 , -p / 4 * 7, true); 
  82.  
  83. // 順時(shí)針繪制下側(cè)封邊 
  84.  
  85. ctx.arc(h / 2 + (h / 6 + s / 2) * q , h / 2 + (h / 6 + s / 2) * q , s / 2,-p / 4 , p / 4 * 7,false); 
  86.  
  87. // 順時(shí)針繪制實(shí)心外圈 
  88.  
  89. ctx.arc(h / 2, h / 2, h/6 + s, -p / 4 * 7, -p / 4, false); 
  90.  
  91. // 順時(shí)針繪制上側(cè)封邊 
  92.  
  93. ctx.arc(h / 2 + (h / 6 + s / 2) * q , h / 2 - (h / 6 + s / 2) * q , s / 2,-p / 4*7 , p / 4 ,false); 
  94.  
  95. // 填充顏色 
  96.  
  97. ctx.fillStyle = '#4286f5'; 
  98.  
  99. ctx.fill(); 

注意弧線也必須閉合,否則會(huì)出bug

成品和完整源碼

本文的成品如下圖所示:

上文提到快應(yīng)用的Canvas暫時(shí)不支持透明背景,所以官方logo的透明邊框變成了白色邊框,這是一個(gè)瑕疵所在。

本文的完整源碼如下:

 
 
 
 
  1.  
  2.  
  3.  
  4.  
  5.  


網(wǎng)頁(yè)標(biāo)題:用Canvas繪制快應(yīng)用開(kāi)發(fā)工具的logo12.14
網(wǎng)頁(yè)地址:http://www.5511xx.com/article/cdjsgss.html