国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

canvas繪制圖表(一)

yzd / 3469人閱讀

摘要:圖表是數(shù)據(jù)表示的一種直觀的形式,前端開發(fā)經(jīng)常回合圖表打交道,一般都會借用第三方的庫,如等,但如果只是很簡單的圖標(biāo),我們完全可以自己繪制,現(xiàn)在我們來繪制一個簡單的百分比展示圖表最終效果如下代碼額,很簡單,隨便放在某個地方繪制一個圓弧注意點一些

圖表是數(shù)據(jù)表示的一種直觀的形式,前端開發(fā)經(jīng)常回合圖表打交道,一般都會借用第三方的js庫,如echats、bizchats等,
但如果只是很簡單的圖標(biāo),我們完全可以自己繪制,現(xiàn)在我們來繪制一個簡單的百分比展示圖表

最終效果如下

html代碼

額,很簡單,隨便放在html某個地方

繪制一個圓弧

注意點

1.一些如寬度,半徑的數(shù)據(jù)盡量做成可配置的,我先配置如下4個屬性

let config = {
    width: 300,     //畫布的寬
    height: 300,    //畫布的高
    radius: 100,    //圓弧半徑
    lineWidth: 30,  //圓弧線條寬度
    bgBase: "#000", //未填充背景色
    bgFill: "red", //填充背景色
    data: 1         //數(shù)據(jù),百分比,20%應(yīng)寫成0.2
}

2.最終圓弧的兩端要是圓的
ctx.lineCap = "round"

3.圓弧起始盡量從0開始,便于計算

4.從0開始的圓弧需要位移旋轉(zhuǎn)等操作,注意canvas的位移旋轉(zhuǎn)需要在繪制圖形前設(shè)置

效果

代碼
let config = {
    width: 300,     //畫布的寬
    height: 300,    //畫布的高
    radius: 100,    //圓弧半徑
    lineWidth: 30,  //圓弧線條寬度
    bgBase: "#000", //未填充背景色
    bgFill: "red", //填充背景色
    data: 0.5         //數(shù)據(jù),百分比,20%應(yīng)寫成0.2
}

let canvas =  document.getElementById("canvas")
canvas.width = config.width
canvas.height = config.height

let ctx = canvas.getContext("2d")

ctx.save()
ctx.beginPath()
ctx.translate(config.width/2,config.height/2);
ctx.rotate(0.6*Math.PI)
ctx.lineWidth = config.lineWidth
ctx.lineCap = "round"
ctx.strokeStyle = config.bgBase
ctx.arc(0,0,config.radius,0,1.8*Math.PI)
ctx.stroke()
ctx.beginPath()
ctx.arc(0,0,config.radius,0,1.8*Math.PI*config.data)
ctx.strokeStyle = config.bgFill
ctx.stroke()
ctx.restore()
繪制百分比數(shù)值

注意設(shè)置字體大小時后要跟字體名,否則會無效,如:
ctx.font = "30px Arial"

代碼
ctx.save()
ctx.beginPath()
ctx.font = "30px Arial"
ctx.textAlign = "center"
ctx.textBaseline = "middle"
ctx.fillText(config.data*100 + "%",config.width/2,config.height/2)
ctx.restore()

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/106145.html

相關(guān)文章

  • 怎樣用JavaScript和HTML5 Canvas繪制圖表

    摘要:餅狀圖將數(shù)據(jù)用切割成份的圓來展示。至于半徑,我們用寬度的一半與高度的一半的較小值,因為我們不想讓餅狀圖超出。結(jié)果看起來如下這樣繪制圓環(huán)圖我們已經(jīng)看到如何創(chuàng)建餅狀圖。怎樣畫洞呢我們可以畫一個白色的圓在餅狀圖上。 showImg(https://segmentfault.com/img/bVObDh?w=850&h=362); 原文:https://code.tutsplus.com/zh...

    doodlewind 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<