html5 canvas繪圖文本換行的示例代碼_第1頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、html5 canvas繪圖文本換行的示例代碼本文介紹怎么解決canvas繪圖過程中,drawtext的換行問題,先看一個(gè)大家平常在canvas繪制文本都會(huì)碰到的問題:一個(gè)150*100的canvas畫布,加個(gè)邊框顯然邊界我們先來看filltext()辦法,stroketext()辦法同理var c=document.getelementbyid("canvas");var ctx=c.getcontext("2d");ctx.fillstyle="e992b9"ctx.linewidt

2、h=1;var str = "如果生活哄騙了你,請(qǐng)不要悲哀!thank you!"ctx.filltext(str,0,20);可以看到filltext()在固寬的canvas中,字?jǐn)?shù)過多的時(shí)候,并不會(huì)自動(dòng)換行,我們可以增強(qiáng)canvas本身的寬度,但這不是解決問題的根本辦法。還記得之前介紹canvas基本api的時(shí)候,有一個(gè)函數(shù),context.measuretext(text) 這個(gè)函數(shù)可以測量字體的寬高度,那就好辦了,我們計(jì)算好我們字符串的長度加上一個(gè)也許的寬度,基本上可以處理這種換行的問題了。下面看詳細(xì)實(shí)現(xiàn)辦法:var c=document.getel

3、ementbyid("canvas");var ctx=c.getcontext("2d");ctx.fillstyle="e992b9"ctx.linewidth=1;var str = "如果生活哄騙了你,請(qǐng)不要悲哀!thank you!"var linewidth = 0;var canvaswidth = c.width;/計(jì)算canvas的寬度var initheight=15;/繪制字體距離canvas頂部初始的高度var lastsubstrindex= 0; /每次開頭截取的字符串的索引for(let i=0;icanvaswidth) ctx.filltext(str.substring(lastsubstrindex,i),0,initheight);/繪制截取部分 initheight+=20;/20為字體的高度 linewidth=0; lastsubstrindex=i; if(i=str.length-1)/繪制剩余部分 ctx.filltext(str

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論