1. 程式人生 > >HTML5-canvas畫布

HTML5-canvas畫布

(1)canvas

width、height和style裡面的width、height一樣嗎?

如果直接設定canvas的width和height:畫布和元素的寬度是你設定的值

如果設定的是style裡面的width和height,它僅表示canvas元素佔文件流的位置,這時候畫布的寬度和高度都是預設值分別是600,300。

注意:設定canvas的寬度的直接設定canvas的width和height屬性,如果需要放大canvas畫布,設定的CSS width和height應該和canvas的width和height屬性值,比例保持一致,說白了就是對比縮放。

(2)座標系

座標的圓點是在左上角

定義畫布的大小是style的屬性,而定義畫布的畫素是canvas特有的width,height屬性

var canvas= document.getElementById("canvas");
canvas.width = 500;
canvas.height = 500;
var context = canvas.getContext("2d");

context.moveTo(100,200);//移動原點,起始位置context.lineTo(50,300);//目標位置context.lineWidth = 10;//畫筆的粗細context.strokeStyle = "red";//畫筆的樣式context.stroke();//開始畫畫

canvas是內聯元素

畫園

context.arc(200,200,100,800,1

/2*Math.PI, true);

引數:(圓心X,圓心Y,半徑,起始角度,目標角度,畫的方向【可選】)預設的是順時針(false)

(3)描邊和填充

 stroke(描邊)fill(填充)

(4)常用方法

getContext("2d"):獲取渲染的上下文,說白了  獲取畫筆,後面的引數固定寫“2d”

var context= canvas.getContext("2d");

moveTo(x,y):移動畫筆的位置,後面帶兩個引數

context.moveTo(250,150);

lineTo(x,y):加一條線,引數是線的終點位置

context.lineTo(250,300);

和線條相關的屬性

lineWidth = 1;線的寬度

strokeStyle 線條的顏色

stroke()繪製線條

clearRect()關閉路徑 也就是回到起點

fillStyle:這是屬性  設定屬性填充的顏色一般填顏色就可以

ctx.fillStyle= "yellow";

fill():完成填充操作

ctx.fill();

beginPath()方法開始一條路徑,或重置當前路徑

beginPath()

arc(x,y,r,start,end,direction)繪製一個弧。前面兩個引數組成圓心的座標,第三個引數r半徑。第四個引數:start起始的弧度,第五個引數end結束的弧度,最後一個引數direction,繪製方向,true:逆時針方向,false:順時針方向,該預設是false

context.rect(x,y,w,h)繪製矩形(x,y)是矩形左上角的座標位置,w:矩形的寬度 , h:矩形的高度。