(精华)2020年6月28日 Canvas 基础知识
【摘要】
Canvas绘制线条
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">...
Canvas绘制线条
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>线条</title>
</head>
<body>
<canvas id="canvas" width="850" height="750" style="border:1px solid #000"></canvas>
<script>
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
// context对象 , 2d对象,使用它可以来绘制图案
var ctx = canvas.getContext('2d');
// ctx.beginPath(); //1. 生成路径,新建一条路径
// ctx.moveTo(20,20); //2. moveTo移动笔触 设置起始点,把笔移动到哪里去
//3. 开始画图
//画线 , 三角,圆
//4. 样式
//5. stroke (描边) 不能自动闭合路径,closePath
// fill(实心的填充) .自动闭合路径
//画一条线
ctx.beginPath(); //生成路径
ctx.moveTo(50, 100);
ctx.lineTo(80, 200); //定义线条结束的点
// ctx.lineTo(215,220);//定义线条结束的点
ctx.closePath(); //关闭路径, 创建从当前点到开始点的路径
ctx.stroke();
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
Canvas绘制三角形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>三角形</title>
</head>
<body>
<canvas id="canvas" width="850" height="750" style="border:1px solid #000"></canvas>
<script>
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
// context对象 , 2d对象,使用它可以来绘制图案
var ctx = canvas.getContext('2d');
//画描边三角形
//ctx.beginPath();//生成路径
//ctx.lineWidth=20;
//ctx.moveTo(50,100);
//ctx.lineTo(80,200);//定义线条结束的点
//ctx.lineTo(215,220);//定义线条结束的点
//ctx.lineTo(50,100);//定义线条结束的点
//ctx.closePath(); //关闭路径, 创建从当前点到开始点的路径
//ctx.stroke();
//绘制填充的三角形
ctx.beginPath();
ctx.moveTo(300, 100);
ctx.lineTo(120, 130);
ctx.lineTo(150, 220);
ctx.strokeStyle = "#ff6600";
ctx.fillStyle = "#ff6600";
ctx.closePath();
ctx.stroke();
// ctx.fill(); //不需要closePath
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
Canvas绘制矩形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>矩形</title>
</head>
<body>
<canvas id="canvas" width="850" height="750" style="border:1px solid #000"></canvas>
<script>
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
// context对象 , 2d对象,使用它可以来绘制图案
var ctx = canvas.getContext('2d');
//3种绘制矩形
// 1. fillRect(x,y,width,height) //实心, 填充
// 2. strokeRect(x,y,width,height) //描边的矩形
// 3. rect路径, fill
// clearRect(x,y,width,height) //清除矩形区域,完全透明
//1.绘制一个填充的矩形
ctx.beginPath(); //
ctx.fillStyle = '#ff6600';
ctx.fillRect(250, 250, 80, 100);
//2.绘制一个描边的矩形
ctx.beginPath(); //
ctx.strokeStyle = 'green';
ctx.strokeRect(320, 120, 120, 100);
//3. 绘制填充的矩形带有边框
ctx.translate(10, 10); //左边参考点
ctx.lineWidth = 5;
ctx.fillStyle = '#ff6600';
ctx.strokeStyle = 'green';
//定义绘制的路径
ctx.rect(0, 0, 80, 100); //只是一条路径,并没描边和填充
ctx.stroke();
ctx.fill();
//4.清除指定区域,让他完全透明
ctx.clearRect(10, 10, 50, 60);
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
Canvas绘制圆弧
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>圆弧</title>
</head>
<body>
<canvas id="canvas" width="850" height="750" style="border:1px solid #000"></canvas>
<script>
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
// context对象 , 2d对象,使用它可以来绘制图案
var ctx = canvas.getContext('2d');
// 360 * Math.PI/180
// arc(x,y,radius,start,end,方向(true,false)// 绘制
// false 顺时针
// true :逆时针
//绘制一个实心的圆
ctx.beginPath();
ctx.fillStyle = '#ff6600';
ctx.arc(70, 70, 60, 0, 2 * Math.PI, true); //
ctx.fill();
//绘制一个描边的圆
ctx.translate(200, 200);
ctx.beginPath();
ctx.strokeStyle = '#ff6600';
ctx.arc(70, 70, 60, 0, 2 * Math.PI, true); //
ctx.stroke();
//绘制一个描边的圆弧
ctx.translate(100, 100);
ctx.beginPath();
ctx.strokeStyle = '#ff6600';
ctx.arc(70, 70, 60, 0, 60 * Math.PI / 180, false); //
ctx.stroke();
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
Canvas绘制图片
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>图片</title>
</head>
<body>
<canvas id="canvas" width="850" height="750" style="border:1px solid #000"></canvas>
<script>
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
// context对象 , 2d对象,使用它可以来绘制图案
var ctx = canvas.getContext('2d');
var img = new Image();
img.src = './heads.png';
img.width = '30px';
img.heihgt = '300px';
img.onload = function () {
//开始绘制图片
ctx.drawImage(img, 10, 10);
}
// img.οnerrοr=function(){
// }
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
Canvas绘制文本
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>文本</title>
</head>
<body>
<canvas id="canvas" width="850" height="750" style="border:1px solid #000"></canvas>
<script>
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
// context对象 , 2d对象,使用它可以来绘制图案
var ctx = canvas.getContext('2d');
//font textAlign textBaseline direction ( ltr rtl )
//渲染文本
// fillText(text, x,y, maxWidth)
// strokeText(text, x,y, maxWidth)
ctx.font = '30px Arial';
ctx.fillText('hello world', 10, 50, 200);
ctx.strokeText('hello world', 10, 350, 200);
}
</script>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/106991626
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)