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

主頁 > 知識庫 > 詳解canvas在圓弧周圍繪制文本的兩種寫法

詳解canvas在圓弧周圍繪制文本的兩種寫法

熱門標簽:中紳電銷智能機器人 農村住宅地圖標注 濟南辦理400電話 漳州人工外呼系統排名 ai電銷機器人連接網關 鄭州電銷外呼系統違法嗎 鶴壁手機自動外呼系統怎么安裝 威海營銷外呼系統招商 跟電銷機器人做同事

教程是直接按弧度進行編寫的

自己又試著用角度重新編寫了一份,有些差別,總結起來還是用弧度比較方便,當然兩種哪種理解的容易可以自行斟酌

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

效果如下圖

第一種是直接用弧度的

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)//每個字母占的弧度
      var angle=parseFloat(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(angle)*radius,circle.y-Math.sin(angle)*radius)
        context.rotate(Math.PI/2-angle)   //Math.PI/2為旋轉90度  Math.PI/180*X為旋轉多少度
        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)  //第三個參數表示文字首位是否相接 差了多少弧度

第二種是用角度帶入的 請注意drawCircularText的第二個參數和第三個參數的不同

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)//每個字母占的弧度
      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為旋轉90度  Math.PI/180*X為旋轉多少度
        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)  //第三個參數表示文字首位是否相接 差了多少弧度

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:萍鄉 咸陽 文山 蘇州 惠州 甘南 紅河 營口

巨人網絡通訊聲明:本文標題《詳解canvas在圓弧周圍繪制文本的兩種寫法》,本文關鍵詞  詳解,canvas,在,圓弧,周圍,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解canvas在圓弧周圍繪制文本的兩種寫法》相關的同類信息!
  • 本頁收集關于詳解canvas在圓弧周圍繪制文本的兩種寫法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 奎屯市| 白水县| 屯门区| 威远县| 沧州市| 鹤庆县| 闵行区| 嵊州市| 鄱阳县| 威信县| 井陉县| 泗水县| 依安县| 宜兰县| 柳江县| 长寿区| 迁西县| 全椒县| 宜春市| 商河县| 富川| 怀宁县| 晴隆县| 嫩江县| 崇义县| 平顶山市| 太仆寺旗| 旅游| 安顺市| 芦溪县| 罗平县| 徐水县| 章丘市| 江华| 洛川县| 安远县| 霍山县| 白银市| 江源县| 高尔夫| 内乡县|