首頁 web前端 H5教程 html5 Canvas畫圖教學(1)—畫圖的基本常識_html5教學技巧

html5 Canvas畫圖教學(1)—畫圖的基本常識_html5教學技巧

May 16, 2016 pm 03:50 PM
canvas 教學 畫圖

雖然大家都稱Canvas為html5的新標籤,看起來好像Canvas屬於html語言的新知識,但其實Canvas畫圖是透過javascript來做的。所以,如果你想學習Canvas畫圖,你必須要有Javascript基礎。
另外,畫圖嘛,總是有一些圖像方面的術語和知識點,所以如果你有過做圖或美工經驗,學習Canvas會更容易。

Canvas,意為畫布也。而Html5中的Canvas也真的跟現實生活中的畫布非常相似。所以,把他看成一塊實實在在的畫布可以加快理解。

畫布
用canvas作畫,首先,你需要有一塊「畫布」。如果你的書架裡面沒有畫布,你可以買一卷回來放進去。當然,網頁裡面我們不需要花錢買,直接寫一個canvas即可,類似:

複製程式碼
程式碼如下:

你的瀏覽器不支援canvas

其中標籤裡面的文字是給不支援canvas的瀏覽器看的,支援的永遠看不到。
這個畫布的特性有必要說一下,他有兩個原生的屬性,即width和height.同時,因為他也是一個html元素,所以他也可以使用css來定義width和height,但是,千萬要注意:他自己的寬高和透過css定義的寬高是不一樣的!
我們用JS來改變Canvas的寬高,是這樣的:

複製程式碼
程式碼🎜>
canvas.width= 400
canvas.height = 300

但用JS透過操作CSS來改變Canvas的寬高,則是這樣:


複製程式碼程式碼如下:
canvas.style.width = '>

canvas.style.width = '00px'

看得出來,語法上區別是很明顯的。實際上差異更明顯。

他們的差別是什麼?
例如一塊寬1000的畫布,你在畫布左側畫了一條垂直線,寬100像素。此時你把畫布本身的width設為500,相當於把畫布的右半邊咔嚓掉了,但此時那豎線的寬度還是100。
但如果你透過CSS來把畫布的寬度變成500,那就相當於把畫布由1000擠壓到500,所以豎線的寬度變成了50.
(這只是理論情況,實際上設定canvas的寬度時,他會清空掉已畫出來的內容。的太過隨意,那麼畫布上的圖形可能變得你自己都認不出來。
所以有個建議:除非特殊情況,一定不要用css來定義Canvas的寬高。
畫布有了,現在我們把他拿出來:


複製代碼代碼如下:

代碼如下:


代碼如下:

代碼如下:



代碼如下:

var cvs = document.getElementById('cvs');


看,跟取得其他元素的辦法一模一樣。
畫筆 現在畫布已經有了,想往上面塗鴉,當然還需要一隻筆。 canvas取得筆的方法如下:var ctx = cvs.getContext('2d');其中getContext方法就是用來拿筆的,但這裡還有個參數:2d,這是什麼意思呢?這個可以看作是畫筆的種類。 既然有2D,那麼就會有3d了?以後估計會有,但現在沒有。所以我們先用這隻2d的筆吧。
那我們可以多放幾隻筆來備用嗎?答案是不能。
我要問一個問題:你畫圖的時候是同時用幾隻筆呢?相信99.9%的人都是只能用一隻,雖然有些武林高手比如小龍女之類的可以兩隻手同時畫,但這對一般人來說很不現實,是不是?
所以現在你可以感到欣慰了,因為html5的canvas標籤也只支援同時用一​​支筆!
有的寫JS寫的比較熟的同學可能會想耍個小聰明:我用前面獲取畫筆的方法多整幾隻筆出來,不就行了? !
比如:
複製代碼代碼如下: var con = cvs .getContext('2d'); var ctx = cvs.getContext('2d');
哈哈哈哈,好像成功了,在沒測試之前我也是這麼想的,但,其實這只是一個幻覺!
因為我發現,我把其中一支筆沾上紅墨水,另外一支筆也自動沾上了紅墨水!因為兩支筆是一體的! fuck。
如果你需要畫出不同的顏色,辦法就是把這只唯一的「筆」不停的沾上新顏色。
這其實不是一個優點,是個缺陷,以後你會體會到的。

座標
2d世界,就是平面,在一個平面上決定一個點,需要兩個值,x座標和y座標。這是一個很重要的基礎概念。
canvas的原點是左上角,跟flash一樣。但蛋痛的是數學中的原點是左下角。這個…只能說習慣就好

一些畫圖的基本常識
首先你需要知道,怎樣的座標變化會畫出什麼線?例如,x座標變大而y座標不變,則能畫出一條橫線;y座標變化而x座標不變,則是一條垂直線。
當然,還有斜線,左斜線右斜線什麼的,如果能對照圖片,大部分人都能一看即懂;只是用代碼畫起來就比較鬱悶了,只能靠邏輯思維想出來。
如果你現在感覺對線條一片混沌,也不用擔心,在學習的過程中自然會理解。

其他
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.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 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)

得物使用教程 得物使用教程 Mar 21, 2024 pm 01:40 PM

得物APP是當前十分火爆品牌購物的軟體,但是多數的用戶不知道得物APP中功能如何的使用,下方會整理最詳細的使用教程攻略,接下來就是小編為用戶帶來的得物多功能使用教學匯總,有興趣的用戶快來一起看看吧!得物使用教學【2024-03-20】得物分期購怎麼使用【2024-03-20】得物優惠券怎麼獲得【2024-03-20】得物人工客服怎麼找【2024-03-20】得物取件碼怎麼查看【2024-03-20】得物求購在哪裡看【2024-03-20】得物vip怎麼開【2024-03-20】得物怎麼申請退換貨

升級numpy版本:詳細易學的指南 升級numpy版本:詳細易學的指南 Feb 25, 2024 pm 11:39 PM

如何升級numpy版本:簡單易懂的教程,需要具體程式碼範例引言:NumPy是一個重要的Python庫,用於科學計算。它提供了一個強大的多維數組物件和一系列與之相關的函數,可用於進行高效的數值運算。隨著新版本的發布,不斷有更新的特性和Bug修復可供我們使用。本文將介紹如何升級已安裝的NumPy函式庫,以取得最新特性並解決已知問題。步驟1:檢查目前NumPy版本在開始

夏天,一定要試試拍攝彩虹 夏天,一定要試試拍攝彩虹 Jul 21, 2024 pm 05:16 PM

夏天雨後,常常能見到美麗又神奇的特殊天氣景象-彩虹。這也是攝影中可遇而不可求的難得景象,非常出片。彩虹出現有這樣幾個條件:一是空氣中有充足的水滴,二是太陽以較低的角度照射。所以下午雨過天晴後的一段時間內,是最容易看到彩虹的時候。不過彩虹的形成受天氣、光線等條件的影響較大,因此一般只會持續一小段時間,而最佳觀賞、拍攝時間更為短暫。那麼遇到彩虹,怎樣才能合理地記錄下來並拍出質感呢? 1.尋找彩虹除了上面提到的條件外,彩虹通常出現在陽光照射的方向,即如果太陽由西向東照射,彩虹更有可能出現在東

微信關收款聲音的步驟教程 微信關收款聲音的步驟教程 Mar 26, 2024 am 08:30 AM

1.首先打開微信。 2.點選右上角【+】。 3.點選二維碼收款。 4.點擊右上角三個小點。 5.點選關閉收款到帳語音提醒。

DisplayX(顯示器測試軟體)使用教學課程 DisplayX(顯示器測試軟體)使用教學課程 Mar 04, 2024 pm 04:00 PM

在購買顯示器的時候對其進行測試是必不可少的一環,能夠避免買到有損壞的,今天小編教大家來使用軟體對顯示器進行測試。方法步驟1.首先要在本站搜尋下載DisplayX這款軟體,安裝打開,會看到提供給用戶很多種檢測方法。 2.使用者點擊常規完全測試,首先是測試顯示器的亮度,使用者調整顯示器使得方框都能看得清楚。 3.之後點選滑鼠即可進入下一節,如果顯示器能夠分辨每個黑色白色區域那表示顯示器還是不錯的。 4.再次按一下滑鼠左鍵,會看到顯示器的灰階測試,顏色過渡越平滑表示顯示器越好。 5.另外在displayx軟體中我們

photoshopcs5是什麼軟體? -photoshopcs5使用教學課程 photoshopcs5是什麼軟體? -photoshopcs5使用教學課程 Mar 19, 2024 am 09:04 AM

PhotoshopCS是PhotoshopCreativeSuite的縮寫,由Adobe公司出品的軟體,被廣泛用於平面設計和圖像處理,作為新手學習PS,今天就讓小編為您解答一下photoshopcs5是什麼軟體以及photoshopcs5使用教程。一、photoshopcs5是什麼軟體AdobePhotoshopCS5Extended是電影、視訊和多媒體領域的專業人士,使用3D和動畫的圖形和Web設計人員,以及工程和科學領域的專業人士的理想選擇。呈現3D影像並將它合併到2D複合影像中。輕鬆編輯視

專家教你!華為手機截長圖的正確方法 專家教你!華為手機截長圖的正確方法 Mar 22, 2024 pm 12:21 PM

隨著智慧型手機的不斷發展,手機的功能也變得越來越強大,其中截長圖功能成為了許多用戶日常使用的重要功能之一。截長圖可以幫助使用者將較長的網頁、對話記錄或圖片一次儲存下來,方便查閱和分享。而在眾多手機品牌中,華為手機也是備受用戶推崇的一款品牌之一,其截長圖功能也備受好評。本文將為大家介紹華為手機截長圖的正確方法,以及一些專家技巧,幫助大家更好地利用華為手機的

PHP教學:如何將int型別轉換為字串 PHP教學:如何將int型別轉換為字串 Mar 27, 2024 pm 06:03 PM

PHP教學:如何將int型別轉換為字串在PHP中,將整型資料轉換為字串是常見的操作。本教學將介紹如何使用PHP內建的函數將int型別轉換為字串,同時提供具體的程式碼範例。使用強制型別轉換:在PHP中,可以使用強制型別轉換的方式將整型資料轉換為字串。這種方法非常簡單,只需要在整型資料前加上(string)即可將其轉換為字串。下面是一個簡單的範例程式碼

See all articles