成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

html5Canvas畫圓

Baaaan / 2276人閱讀

摘要:畫圓首先來理解下弧度制,以下內(nèi)容摘自百度百科。用弧長與半徑之比度量對應(yīng)圓心角角度的方式,叫做弧度制,用符號表示,讀作弧度。的函數(shù)如下,,參數(shù)意義分別為圓心圓心半徑開始的角度結(jié)束的角度是否逆時針,這里的角度就是采用弧度制。

html5Canvas畫圓

首先來理解下弧度制,以下內(nèi)容摘自百度百科。
用弧長與半徑之比度量對應(yīng)圓心角角度的方式,叫做弧度制,用符號rad表示,讀作弧度。等于半徑長的圓弧所對的圓心角叫做1弧度的角。由于圓弧長短與圓半徑之比,不因為圓的大小而改變,所以弧度數(shù)也是一個與圓的半徑無關(guān)的量。角度以弧度給出時,通常不寫弧度單位。另外一種常用的度量角的方法是角度制?;《戎频木杈驮谟诮y(tǒng)一了度量弧與角的單位,從而大大簡化了有關(guān)公式及運算,尤其在高等數(shù)學中,其優(yōu)點就格外明顯。---《百度百科》

HTML5中canvas畫曲線的函數(shù)有4個,分別是arc,arcTo,quadraticCurveTo,bezierCurveTo.其中最簡單的是arc,
arc可以畫一個完整的圓,也可以畫一段弧線。
arc的函數(shù)如下,arc(x, y, radius, startAngle, endAngle, anticlockwise),參數(shù)意義分別為
圓心x、圓心y、半徑、開始的角度、結(jié)束的角度、是否逆時針,這里的角度就是采用弧度制。

先上個源碼畫一個標準的圓,代碼如下




    
    gf
    


        
    

效果如下:

關(guān)鍵在于參數(shù)中的startAngle, endAngle,代表弧度的起始,一個圓角度制是360度,弧度制就是2π,所以一個完整的圓是從0到2π,也就是上面所示的0和2*Math.PI。

那么接下來 我們畫一端弧,代碼如下,

context.arc(195,150,70,0,0.5*Math.PI);
context.stroke(); 

效果如下,

0.5*Math.PI就是四分之一的圓,arc的0度就是數(shù)學上常用的0度,但是角度默認是順時針的,與數(shù)學上的相反,由于canvas坐標與數(shù)學坐標相反,所以顯示右下區(qū)間的弧段。
如果改變最后一個參數(shù)anticlockwise為true,則顯示如下所示

所以弧線的弧線的繪制方向就變成逆時針,畫了四分之三的圓弧。

context.arc(195,150,70,-0.5*Math.PI,0.5*Math.PI,true);
context.stroke();   

以上代碼畫一個左半圓弧,如圖

所以其他不同的弧線可以自己調(diào)整。

最后另外幾個函數(shù)是用來畫切線圓弧以及貝塞爾曲線的,有興趣可以去研究下

context.moveTo(20,20); 
context.lineTo(100,20); 
context.arcTo(150,20,150,70,50);
context.lineTo(150,120); 
context.stroke();  

context.moveTo(20,20);
context.quadraticCurveTo(20,100,200,20);
context.stroke(); 

context.moveTo(20,20);
context.bezierCurveTo(20,100,200,100,200,20);
context.stroke();

以上代碼效果如下所示

好了,目前僅僅做學習記錄。

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/52170.html

相關(guān)文章

  • 在安卓手機中rem單位border-radius:50%畫圓變形的解決方案

    摘要:但是在安卓手機中會有變形的情況存在,渲染方面確實安卓手機干不過畢竟安卓版本眾多,還有什么的線等等的坑,都是能完美運行,安卓總得找方法。當使用做單位,出來的圓是不會變形的,可能是安卓在計算過程中產(chǎn)生誤差或者有什么其他因素造成的渲染問題。 罪魁禍首 i{ display inline-block width .08rem height .08r...

    RiverLi 評論0 收藏0
  • 在安卓手機中rem單位border-radius:50%畫圓變形的解決方案

    摘要:但是在安卓手機中會有變形的情況存在,渲染方面確實安卓手機干不過畢竟安卓版本眾多,還有什么的線等等的坑,都是能完美運行,安卓總得找方法。當使用做單位,出來的圓是不會變形的,可能是安卓在計算過程中產(chǎn)生誤差或者有什么其他因素造成的渲染問題。 罪魁禍首 i{ display inline-block width .08rem height .08r...

    elarity 評論0 收藏0
  • opencv python 畫圖操作/畫線/畫矩形/畫圓/畫多邊形/添加文字

    摘要:代碼畫圓圓心位置半徑應(yīng)用在上面繪制的矩形內(nèi)繪制一個圓。字體類型檢查文檔以獲取支持的字體字體比例指定字體大小常規(guī)的東西,如顏色,粗細,線型等。應(yīng)用我們將在圖像上寫白色的幾個字母代碼 Drawing Functions in OpenCV 學習目標函數(shù) cv2.line(), cv2.circle() , cv2.rectangle(), cv2.ellipse(), cv2.putTe...

    SQC 評論0 收藏0
  • Web前端常用代碼筆記整理(02)

    1.canvas圖片預(yù)加載及進度條的實現(xiàn) /*star *loading模塊 *實現(xiàn)圖片的預(yù)加載,并顯示進度條 *參數(shù):圖片數(shù)組對象,加載完成的回調(diào)函數(shù) */ function loadImages(sources,callback){ var loadedImages = 0; var numImages = 0; ctx.font=14px ...

    null1145 評論0 收藏0

發(fā)表評論

0條評論

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