婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 詳解canvas在圓弧周?chē)L制文本的兩種寫(xiě)法

詳解canvas在圓弧周?chē)L制文本的兩種寫(xiě)法

熱門(mén)標(biāo)簽:中紳電銷(xiāo)智能機(jī)器人 農(nóng)村住宅地圖標(biāo)注 濟(jì)南辦理400電話(huà) 漳州人工外呼系統(tǒng)排名 ai電銷(xiāo)機(jī)器人連接網(wǎng)關(guān) 鄭州電銷(xiāo)外呼系統(tǒng)違法嗎 鶴壁手機(jī)自動(dòng)外呼系統(tǒng)怎么安裝 威海營(yíng)銷(xiāo)外呼系統(tǒng)招商 跟電銷(xiāo)機(jī)器人做同事

教程是直接按弧度進(jìn)行編寫(xiě)的

自己又試著用角度重新編寫(xiě)了一份,有些差別,總結(jié)起來(lái)還是用弧度比較方便,當(dāng)然兩種哪種理解的容易可以自行斟酌

寫(xiě)代碼有時(shí)候不一定要按照教程一板一眼的寫(xiě),最佳實(shí)踐固然是好,但是自己嘗試些別的也許有些別的收獲不是么~

效果如下圖

第一種是直接用弧度的

var canvas=document.getElementById("canvas")
    var context=canvas.getContext("2d")

    var TEXT_FILL_STYLE="rgba(100,130,240,0.5)"
    var TEXT_STROKE_STYLE="rgba(200,0,0,0.7)"
    var TEXT_SIZE=64;
    circle={
        x:canvas.width/2,
        y:canvas.height/2,
        radius:200
    }
    function drawCircularText(string,startAngle,endAngle){
      var radius=circle.radius //圓的半徑
      var angleDecrement=(startAngle-endAngle)/(string.length-1)//每個(gè)字母占的弧度
      var angle=parseFloat(startAngle) //轉(zhuǎn)一下數(shù)字
      var index=0;
      var character;

      context.save()
      context.fillStyle=TEXT_FILL_STYLE;
      context.strokeStyle=TEXT_STROKE_STYLE;
      context.font=TEXT_SIZE+"px Lucida Sans"

      while(index<string.length){
        character=string.charAt(index)
        context.save()
        context.beginPath()
        context.translate(circle.x+Math.cos(angle)*radius,circle.y-Math.sin(angle)*radius)
        context.rotate(Math.PI/2-angle)   //Math.PI/2為旋轉(zhuǎn)90度  Math.PI/180*X為旋轉(zhuǎn)多少度
        context.fillText(character,0,0)
        context.strokeText(character,0,0)
        angle-=angleDecrement
        index++
        context.restore()

      }
      context.restore()
    }
    context.textAlign="center"
    context.textBaseLine="middle"
   drawCircularText("clockwise around the circle",Math.PI*2,Math.PI/8)  //第三個(gè)參數(shù)表示文字首位是否相接 差了多少弧度

第二種是用角度帶入的 請(qǐng)注意drawCircularText的第二個(gè)參數(shù)和第三個(gè)參數(shù)的不同

var canvas=document.getElementById("canvas")
    var context=canvas.getContext("2d")

    var TEXT_FILL_STYLE="rgba(100,130,240,0.5)"
    var TEXT_STROKE_STYLE="rgba(200,0,0,0.7)"
    var TEXT_SIZE=64;
    circle={
        x:canvas.width/2,
        y:canvas.height/2,
        radius:200
    }
    function drawCircularText(string,startAngle,endAngle){
      var radius=circle.radius //圓的半徑
      var angleDecrement=(startAngle-endAngle)/(string.length-1)//每個(gè)字母占的弧度
      var angle=startAngle //
      
      var index=0;
      var character;

      context.save()
      context.fillStyle=TEXT_FILL_STYLE;
      context.strokeStyle=TEXT_STROKE_STYLE;
      context.font=TEXT_SIZE+"px Lucida Sans"

      while(index<string.length){
        character=string.charAt(index)
        context.save()
        context.beginPath()
        context.translate(circle.x+Math.cos((Math.PI/180)*angle)*radius,circle.y-Math.sin((Math.PI/180)*angle)*radius)
        context.rotate((Math.PI/2)-(Math.PI/180)*angle)   //Math.PI/2為旋轉(zhuǎn)90度  Math.PI/180*X為旋轉(zhuǎn)多少度
        context.fillText(character,0,0)
        context.strokeText(character,0,0)
        angle-=angleDecrement
        index++
        context.restore()

      }
      context.restore()
    }
    context.textAlign="center"
    context.textBaseLine="middle"
   drawCircularText("clockwise around the circle",360,10)  //第三個(gè)參數(shù)表示文字首位是否相接 差了多少弧度

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:萍鄉(xiāng) 咸陽(yáng) 文山 蘇州 惠州 甘南 紅河 營(yíng)口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解canvas在圓弧周?chē)L制文本的兩種寫(xiě)法》,本文關(guān)鍵詞  詳解,canvas,在,圓弧,周?chē)?;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解canvas在圓弧周?chē)L制文本的兩種寫(xiě)法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于詳解canvas在圓弧周?chē)L制文本的兩種寫(xiě)法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 抚顺市| 万年县| 霍州市| 右玉县| 阿图什市| 高青县| 遂宁市| 渑池县| 湖口县| 天门市| 富阳市| 炎陵县| 临武县| 峨边| 南平市| 齐河县| 太康县| 绥棱县| 兴安县| 平湖市| 辽中县| 凭祥市| 准格尔旗| 阿鲁科尔沁旗| 太原市| 柳州市| 赞皇县| 修水县| 措美县| 稷山县| 横峰县| 广平县| 许昌市| 宜兰县| 个旧市| 高密市| 舒兰市| 武邑县| 化德县| 巴中市| 梅河口市|