欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

记录学习 Web 前端----绘图Canvas

程序员文章站 2022-04-22 14:58:39
...

绘图canvas

(1)定义画布

<canvas id="myCanvas" width="860" height="480">
浏览器不支持画布
</canvas>
<!--注意,设置canvas宽、高时不要加上单位,如px-->

(2)设置画布样式


画布样式

#myCanvas {
border: 1px solid black;
}

(3)JS 准备绘图上下文环境

<script>
function draw(event){
var canvas = document.getElementById("myCanvas");//通过文档dcument它的方法来得到id是myCanvas这样的一个元素,保存在canvas里//
var pen = canvas.getContext("2d");//当前我们绘图是一个平面的二维绘图,保存到pen---准备好画笔//
pen.moveTo(50,50);//将画笔移动到起始点//
pen.lineTo(300,300);//用lineTo绘图方法完成起始点到终点的绘制//
pen.lineWidth = 5;//笔触的粗细//
pen.strokeStyle = "red";//笔触的颜色//
pen.stroke();//用stroke方法完成最终的绘制//
}
window.onload = draw; //由window的加载事件来触发draw函数的执行//
</script>

记录学习 Web 前端----绘图Canvas
综合案例
HTML部分

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		
    #myCanvas{
    	border: 1px solid black;

    }		
	</style>
</head>
<body>
<!--注意,设置canvas宽、高时不要加上单位,如px-->

<canvas id="myCanvas" width="860" 
	height="480">
		
	</canvas>
</body>
<script type="text/javascript" src="canvas.js">
	
</script>
</html>

js部分

var canvas,pen;//画布变量,画笔变量
canvas = document.getElementById('myCanvas');
//获取绘图上下文,将来就是用这个上下文在画板上绘制图形
pen = canvas.getContext('2d');
//设置画笔宽度和颜色
pen.lineWidth = 1;
//画笔粗细
pen.strokeStyle = "blue";
//声明变量,表示鼠标的按下状态,false表示未按下,true表示按下

var mousePress = false;
var last = null;

function pos(event){
	var ex,ey;
	ex = event.clientX;
	ey = event.clientY;
	return{
		x: ex,
		y: ey
	};//当事件发生取得当前点的坐标
}

function start(event) {
	mousePress = true;
     }

     //当前已经按住了鼠标
//开始绘图函数

function draw(event){
	if(!mousePress) return;
    //mousePress为假,不做操作
	var xy = pos(event);
    //通过pos参数取得事件发生的时候当前点的坐标,保存在变量X,y内
	if(last != null){
		pen.beginPath();
		pen.moveTo(last.x,last.y);
		pen.lineTo(xy.x,xy.y);
		pen.stroke();

	}//判断最后结束时点的坐标是否为空
	last = xy;
}
function finish(event){
	mousePress = false;
	last = null;
}
//按下鼠标,绘图开始
canvas.onmousedown = start;
//移动鼠标,绘图
canvas.onmousemove = draw;
//抬起鼠标,绘图结束
canvas.onmouseup = finish;

最后效果
记录学习 Web 前端----绘图Canvas