摘要:畫圓首先來理解下弧度制,以下內容摘自百度百科。用弧長與半徑之比度量對應圓心角角度的方式,叫做弧度制,用符號表示,讀作弧度。的函數如下,,參數意義分別為圓心圓心半徑開始的角度結束的角度是否逆時針,這里的角度就是采用弧度制。
html5Canvas畫圓
首先來理解下弧度制,以下內容摘自百度百科。
用弧長與半徑之比度量對應圓心角角度的方式,叫做弧度制,用符號rad表示,讀作弧度。等于半徑長的圓弧所對的圓心角叫做1弧度的角。由于圓弧長短與圓半徑之比,不因為圓的大小而改變,所以弧度數也是一個與圓的半徑無關的量。角度以弧度給出時,通常不寫弧度單位。另外一種常用的度量角的方法是角度制?;《戎频木杈驮谟诮y一了度量弧與角的單位,從而大大簡化了有關公式及運算,尤其在高等數學中,其優點就格外明顯。---《百度百科》
HTML5中canvas畫曲線的函數有4個,分別是arc,arcTo,quadraticCurveTo,bezierCurveTo.其中最簡單的是arc,
arc可以畫一個完整的圓,也可以畫一段弧線。
arc的函數如下,arc(x, y, radius, startAngle, endAngle, anticlockwise),參數意義分別為
圓心x、圓心y、半徑、開始的角度、結束的角度、是否逆時針,這里的角度就是采用弧度制。
先上個源碼畫一個標準的圓,代碼如下
gf
效果如下:
關鍵在于參數中的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度就是數學上常用的0度,但是角度默認是順時針的,與數學上的相反,由于canvas坐標與數學坐標相反,所以顯示右下區間的弧段。
如果改變最后一個參數anticlockwise為true,則顯示如下所示
所以弧線的弧線的繪制方向就變成逆時針,畫了四分之三的圓弧。
context.arc(195,150,70,-0.5*Math.PI,0.5*Math.PI,true); context.stroke();
以上代碼畫一個左半圓弧,如圖
所以其他不同的弧線可以自己調整。
最后另外幾個函數是用來畫切線圓弧以及貝塞爾曲線的,有興趣可以去研究下
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();
以上代碼效果如下所示
好了,目前僅僅做學習記錄。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/52170.html
摘要:但是在安卓手機中會有變形的情況存在,渲染方面確實安卓手機干不過畢竟安卓版本眾多,還有什么的線等等的坑,都是能完美運行,安卓總得找方法。當使用做單位,出來的圓是不會變形的,可能是安卓在計算過程中產生誤差或者有什么其他因素造成的渲染問題。 罪魁禍首 i{ display inline-block width .08rem height .08r...
摘要:但是在安卓手機中會有變形的情況存在,渲染方面確實安卓手機干不過畢竟安卓版本眾多,還有什么的線等等的坑,都是能完美運行,安卓總得找方法。當使用做單位,出來的圓是不會變形的,可能是安卓在計算過程中產生誤差或者有什么其他因素造成的渲染問題。 罪魁禍首 i{ display inline-block width .08rem height .08r...
摘要:代碼畫圓圓心位置半徑應用在上面繪制的矩形內繪制一個圓。字體類型檢查文檔以獲取支持的字體字體比例指定字體大小常規的東西,如顏色,粗細,線型等。應用我們將在圖像上寫白色的幾個字母代碼 Drawing Functions in OpenCV 學習目標函數 cv2.line(), cv2.circle() , cv2.rectangle(), cv2.ellipse(), cv2.putTe...
1.canvas圖片預加載及進度條的實現 /*star *loading模塊 *實現圖片的預加載,并顯示進度條 *參數:圖片數組對象,加載完成的回調函數 */ function loadImages(sources,callback){ var loadedImages = 0; var numImages = 0; ctx.font=14px ...
閱讀 649·2021-11-25 09:43
閱讀 1668·2021-11-18 10:02
閱讀 1041·2021-10-15 09:39
閱讀 1890·2021-10-12 10:18
閱讀 2122·2021-09-22 15:43
閱讀 773·2021-09-22 15:10
閱讀 2088·2019-08-30 15:53
閱讀 988·2019-08-30 13:00