首頁 web前端 H5教程 html5 Canvas畫圖教學(9)—canvas中畫出長方形和圓形_html5教學技巧

html5 Canvas畫圖教學(9)—canvas中畫出長方形和圓形_html5教學技巧

May 16, 2016 pm 03:50 PM
canvas 圓形 長方形

本文講在canvas中畫出長方形和圓形的辦法,他們屬於基礎圖形。當然,基礎圖形本來不只他們,但在canvas中,只有畫矩形與圓形不需要用其他方法模擬。

canvas畫矩形
1,fillRect與strokeRect
fillRect可以直接填入一個矩形,填充樣式是你目前設定的樣式;理strokeRect就是直接描邊一個矩形
他們的參數是一致的,依序是(起點x座標,起點y,矩形的寬,矩形的高)。這裡的起點,注意,是指矩形的左上角那個點。
我們通常用他們來做簡單的事,他們也只能做簡單的事。為什麼?因為他們畫的圖形沒有「路徑」的說法,直接就出來了。
例如你先用fillRect填滿了一個矩形,然後你想把這個矩形描邊,如果你使用stroke(),則不會有效果,因為此時雖然有個矩形,但並不存在路徑。
如果你迫切的想把這個矩形描邊,你可以在同樣的位置使用strokeRect()來描邊一個矩形——但他們其實是獨立的,只是位置重疊罷了。

複製程式碼
程式碼如下:

ctx.fillRect(250,100, );
ctx.strokeRect(200,100,50,40);

如果我們想要一個又有填充又有描邊的矩形,那同時使用fillRect和strokeRect無疑顯得很累贅。所以這種情況我們通常會使用以下方法。

2,rect
rect的參數與fillRect和strokeRect毫無差別,不同的是他畫出的只是路徑,至於描邊或是填充要你後續自己完成。

複製程式碼
程式碼如下:

ctx.rect(300,10,550,500 );
ctx.stroke()
ctx.fill();

這樣做有什麼好處呢?前面的文章我提到過,填充或描邊會消耗大量資源,所以我們經常(例如循環)需要一次性繪製幾百條路徑,再來描邊或填充。此時使用rect畫路徑,最後再填充,就避免了fillRect和strokeRec每次都要填滿或描邊的問題。

3,lineTo
當然你也可以像我的畫線條的教程那樣,用4個lineTo來畫出一個矩形。但這毫無必要,具體可看那篇文章。

Canvas畫圓形
蒼天無眼,其實canvas並沒有一個真正的可以直接畫出圓形的函數,他畫的其實是一個360度的圓弧,看起來就是個圓形了。
canvas畫圓弧的函數我們前面講過了,即arc.我們用他來畫一個圓形:

複製程式碼
程式碼如下:

ctx.arc(300 25,100 20,20,0,Math.PI*2);
ctx.stroke()
ctx. fill();

這個arc和rect一樣,畫出的也是路徑,填充或描邊需要後續完成。
但要注意的是,圓形的位置判斷和長方形是不一樣的。我們以長方形的左上角為起點來決定他的位置,但圓形的位置我們通常用圓心來決定。
如果你想畫一組水平和垂直都居中的長方形與圓形,那你可要記得不要把長方形的起點當成了畫圓形的起點-圓形的起點可是圓心哈!
 
算了,我還是給你一個現在的公式吧,對齊的圓與矩形,圓心的坐標=矩形的坐標 矩形的一半寬高。
也就是圓心x=矩形x 矩形寬/2,圓形y=矩形y 矩形高/2。這樣他們就是絕對對齊了的。
雖然arc沒有直接畫圓的方法那麼好用——我設想的直接畫圓的方法只需要3個參數,即圓心坐標即半徑——但arc不止可以畫圓,還可以畫半圓什麼的,所以功能更強大,用著也將就了。
既然有圓,那麼就應該有橢圓,但canvas中連一個正規的畫圓的函數都沒有,更別提橢圓了。所以畫橢圓必須用其他方法模擬,這個比較複雜,我留到後面講吧。
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

ppt怎麼做圓形的圖片和文字 ppt怎麼做圓形的圖片和文字 Mar 26, 2024 am 10:23 AM

首先,在 PPT 中繪製一個圓圈,然後插入一個文字框,輸入文字內容。最後,設定文字方塊的填滿和輪廓為無,即可完成圓形圖片和文字的製作。

ppt怎麼做圓形的圖片 ppt怎麼做圓形的圖片 Mar 25, 2024 pm 03:54 PM

ppt做圓形的圖片的方法:1、使用裁切功能;2、使用形狀工具;3、使用快捷鍵和控點調整。

在一個內接於半圓的矩形中的圓的面積是多少? 在一個內接於半圓的矩形中的圓的面積是多少? Sep 13, 2023 am 08:45 AM

一個內切於矩形的圓與矩形的較長邊相切,即長度與圓相切。一個內切於半圓的矩形在半圓的弧上接觸兩點。矩形的寬度等於圓的直徑。如果R是半圓的半徑。矩形的長度=√2R/2矩形的寬度=R/√2內切圓的半徑為r=b/2=R/2√2使用這個公式我們可以計算出內切於內切於半圓的矩形的圓的面積,面積=(π*r2)=π*R/8範例 示範#include<stdio.h>intmain(){&

圓扇形的面積是多少? 圓扇形的面積是多少? Aug 30, 2023 am 08:33 AM

圓扇形,也稱為圓扇區/圓的扇區,是由兩個半徑之間的弧線所圍成的圓的一部分。這個區域被兩個半徑和一個弧線所包圍。為了找出內切的面積,我們需要找出兩個半徑之間的角度。總面積等於360度的角度。為了求出一個角度的面積,我們將面積乘以θ/360。這給出了內切部分的面積。其中θ是兩個半徑之間的角度(以度為單位)。圓扇形的面積=π*r*r*(θ/360)。範例半徑為5,角度為60度的圓扇形的面積為13.083。面積=(3.14*5*5)*(60/360)=13.03範例程式碼 演示#incl

cad矩形打散後怎麼合併一個圖形 cad矩形打散後怎麼合併一個圖形 Feb 28, 2024 pm 12:10 PM

在使用CAD軟體時,我們經常遇到需要將已經「打散」的矩形物件重新組合成一個單獨圖形的情況。這個需求在許多領域都有出現,如空間規劃、機械設計和建築圖繪製等。為了滿足這項需求,我們需要了解並掌握CAD軟體中的一些關鍵功能。接下來,本站小編將為你詳細介紹如何在CAD環境下完成這項任務,有疑惑的用戶們就快來跟著本文一起操作學習吧。 cad矩形打散後合併一個圖形方法步驟1、開啟CAD2023軟體,建立一個矩形,然後輸入X指令,空格。如下圖:2、選擇矩形對象,空格。就可以打散對象了。 3、選擇所有打開的直線

canvas箭頭插件有哪些 canvas箭頭插件有哪些 Aug 21, 2023 pm 02:14 PM

canvas箭頭外掛有:1、Fabric.js,具有簡單易用的API,可以創建自訂箭頭效果;2、Konva.js,提供了繪製箭頭的功能,可以創建各種箭頭樣式;3、Pixi.js ,提供了豐富的圖形處理功能,可以實現各種箭頭效果;4、Two.js,可以輕鬆地創建和控制箭頭的樣式和動畫;5、Arrow.js,可以創建各種箭頭效果;6、Rough .js,可以創造手繪效果的箭頭等。

使用類別的概念編寫Java程式來計算矩形的面積和周長 使用類別的概念編寫Java程式來計算矩形的面積和周長 Sep 03, 2023 am 11:37 AM

Java語言是當今世界上最常用的物件導向程式語言之一。類別的概念是物件導向語言中最重要的特性之一。一個類別就像一個物件的藍圖。例如,當我們想要建造一棟房子時,我們首先創建一份房子的藍圖,換句話說,我們創建一個顯示我們將如何建造房子的計劃。根據這個計劃,我們可以建造許多房子。同樣地,使用類,我們可以創建許多物件。類別是創建許多物件的藍圖,其中物件是真實世界的實體,如汽車、自行車、筆等。一個類別具有所有物件的特徵,而物件具有這些特徵的值。在本文中,我們將使用類別的概念來編寫一個Java程序,以找到矩形的周長和麵

html2canvas有哪些版本 html2canvas有哪些版本 Aug 22, 2023 pm 05:58 PM

html2canvas的版本有html2canvas v0.x、html2canvas v1.x等。詳細介紹:1、html2canvas v0.x,這是html2canvas的早期版本,目前最新的穩定版本是v0.5.0-alpha1。它是一個成熟的版本,已經被廣泛使用,並且在許多專案中得到了驗證;2、html2canvas v1.x,這是html2canvas的新版本。

See all articles