html5的畫(huà)布canvas——畫(huà)出弧線、旋轉(zhuǎn)的圖形實(shí)例代碼+效果圖
發(fā)布時(shí)間:2013-06-09 15:32:56 作者:佚名
我要評(píng)論

在做旋轉(zhuǎn)操作之前一定要理解一句話:旋轉(zhuǎn)的是畫(huà)布的坐標(biāo)系而不是圖形本身,首先認(rèn)識(shí)一下畫(huà)圓的坐標(biāo):中心、起始角、結(jié)束角;接下來(lái)的就很簡(jiǎn)單了
在做旋轉(zhuǎn)操作之前一定要理解一句話:旋轉(zhuǎn)的是畫(huà)布的坐標(biāo)系而不是圖形本身,好了,理解了這一句話后,接下來(lái)的就很簡(jiǎn)單了。
首先認(rèn)識(shí)一下畫(huà)圓的坐標(biāo):
<script language="javascript">
var cxt=document.getElementById('demo').getContext("2d");
cxt.beginPath();
cxt.arc(100,100,50,Math.PI*0.75,Math.PI*1.75,false);/*繪制一段半圓弧線,圓心坐標(biāo)是100,100;開(kāi)始弧度是0.75,結(jié)束弧度是1.75,最后一個(gè)參數(shù)False = 順時(shí)針,true = 逆時(shí)針,當(dāng)然,這個(gè)參數(shù)可選的*/
cxt.fillStyle="#F00";/*選擇使用的顏色*/
cxt.fill();/*真正將圖形畫(huà)在畫(huà)布上的一步,畫(huà)第一個(gè)半圓*/
/*同理繪制第二個(gè)半圓*/
cxt.beginPath();
cxt.arc(170,100,50,Math.PI*1.25,Math.PI*0.25,false);
cxt.fillStyle="#F00";
cxt.fill();/*將繪制的圖形畫(huà)在畫(huà)布上*/
cxt.beginPath();
/*將畫(huà)布順時(shí)針旋轉(zhuǎn)45度,rotate函數(shù)的參數(shù)是弧度,所以要進(jìn)行轉(zhuǎn)換*/
cxt.rotate(45*Math.PI/180);
cxt.fillRect(141.1,-50,100,100);/*開(kāi)始坐標(biāo)為141.1,-50,寬和高都是100*/
cxt.fillStyle="#F00";
cxt.fill();
cxt.beginPath();
/*將畫(huà)布旋轉(zhuǎn)到正常的角度*/
cxt.rotate(-45*Math.PI/180);
cxt.font="60px 微軟雅黑";
cxt.strokeStyle="#f00";
cxt.strokeText("我愛(ài)html5",0,300);/*兩個(gè)參數(shù),第一個(gè)是開(kāi)始繪制文本的x軸坐標(biāo),第二個(gè)是開(kāi)始繪制文本的Y坐標(biāo)*/
cxt.stroke();
/*創(chuàng)建漸變*/
var grd=cxt.createLinearGradient(0,45,175,50);/*四個(gè)參數(shù)分別是漸變開(kāi)始點(diǎn)x、y漸變結(jié)束點(diǎn)x、y*/
grd.addColorStop(0,"#FF0000");
grd.addColorStop(0.25,"#FFFF00");
grd.addColorStop(0.5,"#00FF00");
grd.addColorStop(0.75,"#00FFFF");
grd.addColorStop(1,"#FFFF00");
cxt.strokeStyle=grd;
cxt.strokeText("我愛(ài)canvas",0,400);/*兩個(gè)參數(shù),第一個(gè)是開(kāi)始繪制文本的x軸坐標(biāo),第二個(gè)是開(kāi)始繪制文本的Y坐標(biāo)*/
cxt.stroke();
</script>
效果圖:
首先認(rèn)識(shí)一下畫(huà)圓的坐標(biāo):

復(fù)制代碼
代碼如下:<script language="javascript">
var cxt=document.getElementById('demo').getContext("2d");
cxt.beginPath();
cxt.arc(100,100,50,Math.PI*0.75,Math.PI*1.75,false);/*繪制一段半圓弧線,圓心坐標(biāo)是100,100;開(kāi)始弧度是0.75,結(jié)束弧度是1.75,最后一個(gè)參數(shù)False = 順時(shí)針,true = 逆時(shí)針,當(dāng)然,這個(gè)參數(shù)可選的*/
cxt.fillStyle="#F00";/*選擇使用的顏色*/
cxt.fill();/*真正將圖形畫(huà)在畫(huà)布上的一步,畫(huà)第一個(gè)半圓*/
/*同理繪制第二個(gè)半圓*/
cxt.beginPath();
cxt.arc(170,100,50,Math.PI*1.25,Math.PI*0.25,false);
cxt.fillStyle="#F00";
cxt.fill();/*將繪制的圖形畫(huà)在畫(huà)布上*/
cxt.beginPath();
/*將畫(huà)布順時(shí)針旋轉(zhuǎn)45度,rotate函數(shù)的參數(shù)是弧度,所以要進(jìn)行轉(zhuǎn)換*/
cxt.rotate(45*Math.PI/180);
cxt.fillRect(141.1,-50,100,100);/*開(kāi)始坐標(biāo)為141.1,-50,寬和高都是100*/
cxt.fillStyle="#F00";
cxt.fill();
cxt.beginPath();
/*將畫(huà)布旋轉(zhuǎn)到正常的角度*/
cxt.rotate(-45*Math.PI/180);
cxt.font="60px 微軟雅黑";
cxt.strokeStyle="#f00";
cxt.strokeText("我愛(ài)html5",0,300);/*兩個(gè)參數(shù),第一個(gè)是開(kāi)始繪制文本的x軸坐標(biāo),第二個(gè)是開(kāi)始繪制文本的Y坐標(biāo)*/
cxt.stroke();
/*創(chuàng)建漸變*/
var grd=cxt.createLinearGradient(0,45,175,50);/*四個(gè)參數(shù)分別是漸變開(kāi)始點(diǎn)x、y漸變結(jié)束點(diǎn)x、y*/
grd.addColorStop(0,"#FF0000");
grd.addColorStop(0.25,"#FFFF00");
grd.addColorStop(0.5,"#00FF00");
grd.addColorStop(0.75,"#00FFFF");
grd.addColorStop(1,"#FFFF00");
cxt.strokeStyle=grd;
cxt.strokeText("我愛(ài)canvas",0,400);/*兩個(gè)參數(shù),第一個(gè)是開(kāi)始繪制文本的x軸坐標(biāo),第二個(gè)是開(kāi)始繪制文本的Y坐標(biāo)*/
cxt.stroke();
</script>
效果圖:

相關(guān)文章
調(diào)用HTML5的Canvas API繪制圖形的快速入門指南
這篇文章主要介紹了調(diào)用HTML5的Canvas API繪制圖形的快速入門指南,Canvas繪圖是HTML5入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-06-17- 這篇文章主要介紹了HTML5 Canvas控制圖形矩陣變換的方法,重點(diǎn)講解了利用transform()方法來(lái)控制CSS像素坐標(biāo)的用法,非常給力,需要的朋友可以參考下2016-03-24
實(shí)例講解利用HTML5 Canvas API操作圖形旋轉(zhuǎn)的方法
這篇文章主要介紹了利用HTML5 Canvas API操作圖形旋轉(zhuǎn)的方法的實(shí)例講解,包括圖片自身的中心坐標(biāo)位置旋轉(zhuǎn)以及圍繞某個(gè)點(diǎn)的旋轉(zhuǎn)例子,需要的朋友可以參考下2016-03-22HTML5 Canvas 繪圖——使用 Canvas 繪制圖形圖文教程 使用html5 canva
本文通過(guò)八種示例給大家分享了html5 canvas繪圖,需要的朋友一起來(lái)學(xué)習(xí)吧2015-08-31- 在html5中我覺(jué)得最重要的就是引入了Canvas,使得我們可以在web中繪制各種圖形,而Canvas為基于像素的繪圖。Canvas是一個(gè)相當(dāng)于畫(huà)板的html節(jié)點(diǎn),我們必須以js操作繪圖2012-12-26
H5最強(qiáng)接口之canvas實(shí)現(xiàn)動(dòng)態(tài)圖形功能
這篇文章主要介紹了H5最強(qiáng)接口之canvas實(shí)現(xiàn)動(dòng)態(tài)圖形功能,需要的朋友可以參考下2019-05-31