首页 前端知识 html5 -- canvas使用(1)

html5 -- canvas使用(1)

2024-01-31 12:01:07 前端知识 前端哥 804 775 我要收藏

canvas

设置canvas标签 添加宽高 默认单位为px

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
#canvas1 {
border: 1px solid #000;
}
</style>
</head>
<body>
<canvas width="300" height="150" id="canvas1"></canvas>
<script>
var canvas = document.getElementById('canvas1');
</script>
</body>
</html>
复制

getContext()

设置上下文的类型

var ctx = canvas.getContext('2d');
复制

ctx可以看做是一个画笔

fillStyle

设置填充的样式

ctx.fillStyle = 'orange';
复制

fillRect

ctx.fillRect(x, y, width, height);
有四个参数 设置x,y方向坐标与宽高值

ctx.fillRect(50, 50, 100, 100);
复制

clearRect

清除中间的区域
四个参数 设置x,y方向坐标与宽高值

ctx.clearRect(75, 75, 50, 50);
复制

在这里插入图片描述

strokeRect

带轮廓的矩形
四个参数 设置x,y方向坐标与宽高值

ctx.strokeStyle(50, 50, 100, 100);
复制

strokeStyle

设置轮廓矩形的样式

ctx.strokeStyle = 'orange';
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
#canvas1 {
border: 1px solid #000;
}
</style>
</head>
<body>
<canvas width="300" height="150" id="canvas1"></canvas>
<script>
var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.strokeStyle = 'orange';
ctx.strokeRect(50, 50, 100, 100);
</script>
</body>
</html>
复制

在这里插入图片描述

创建移动路径

1.创建一个路径beginPath
2.使用画图命令画出路径
3.一旦路径被创建出来的化 就可以通过描边或填充路径区域来渲染图形

直线

beginPath

创建一个路径

ctx.beginPah()
复制

moveTo

起始位置 参数是坐标

stx.moveTo(50, 50)
复制

lineTo

表示直线到哪个位置 参数是坐标

ctx.lineTo(100, 100)
复制

stroke

路径显示

ctx.stroke()
复制

lineWidth

设置线宽

ctx.lineWidth = 10
复制

在这里插入图片描述

closePath

闭合路径

绘制三角形

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.strokeStyle = 'orange';
ctx.moveTo(50, 50);
ctx.lineWidth = 10;
ctx.lineTo(150, 50);
ctx.lineTo(100, 100);
ctx.closePath();
ctx.stroke();
复制

在这里插入图片描述

arc

画圆形
arc(x,y, startAngle, endAngle, anticlockwise)

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(70, 70, 50, 0, 2 * Math.PI);
ctx.stroke();
复制

在这里插入图片描述
最后一个参数false为顺时针画 true为逆时针

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(70, 70, 50, 0, (Math.PI / 180) * 90);
ctx.stroke();
复制

在这里插入图片描述

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(70, 70, 50, 0, (Math.PI / 180) * 90, true);
ctx.stroke();
复制

在这里插入图片描述

arcTo

画圆弧路径
arcTo(x1, y1, x2, y2 ,radius)
前四个为控制点的坐标

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(150, 20);
ctx.arcTo(150, 100, 50, 20, 30);
ctx.lineTo(50, 20);
ctx.stroke();
//基础点
ctx.fillStyle = 'blue';
ctx.fillRect(150, 20, 10, 10);
ctx.fillStyle = 'red';
//控制点k1
ctx.fillRect(150, 100, 10, 10);
//控制点k2
ctx.fillRect(50, 20, 10, 10);
复制

在这里插入图片描述
在这里插入图片描述

quadraticCurveTo

二次贝塞尔曲线
quadraticCurveTo(ctx, cty, x, y)
控制点与终点

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(50, 20);
ctx.quadraticCurveTo(230, 30, 50, 100);
ctx.stroke();
ctx.fillStyle = 'blue';
// 起点
ctx.fillRect(50, 20, 10, 10);
// 终点
ctx.fillRect(50, 100, 10, 10);
// 控制点
ctx.fillStyle = 'red';
ctx.fillRect(230, 30, 10, 10);
复制

在这里插入图片描述

bazierCurveTo

三次贝塞尔曲线
bazierCurveTo(cpx1, cpy1, cpx2, cpy2, x, y)
两个控制点一个终点

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.moveTo(50, 20);
ctx.quadraticCurveTo(230, 50, 150, 60, 50, 100);
ctx.stroke();
复制

在这里插入图片描述

translate

坐标轴变换

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.translate(50, 50);
ctx.fillRect(0, 0, 10, 10);
复制

在这里插入图片描述

restore

恢复到最近一次保存的情况

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.save(); //保存之前的状态
ctx.translate(50, 50);
ctx.fillRect(0, 0, 10, 10);
ctx.restore(); //还原上次保存的状态
ctx.fillStyle = 'orange';
ctx.fillRect(0, 0, 10, 10);
复制

在这里插入图片描述

scale

缩放因子
x轴整体缩放

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.scale(2, 1);
ctx.fillRect(50, 0, 50, 50);
复制

在这里插入图片描述

totate

旋转

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.fillRect(20, 20, 50, 50);
ctx.rotate((Math.PI / 180) * 10);
ctx.fillStyle = 'red';
ctx.fillRect(20, 20, 50, 50);
复制

在这里插入图片描述

transform

水平缩放 垂直倾斜 水平倾斜 垂直缩放 水平移动 垂直移动

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.transform(1, 1, 0, 1, 0, 0);
ctx.fillRect(0, 0, 50, 50);
复制

在这里插入图片描述

setTransform

忽略transalte的变换

var canvas = document.getElementById('canvas1');
// 一个参数 设置上下文的类型
var ctx = canvas.getContext('2d');
ctx.translate(50, 50);
ctx.setTransform(1, 1, 0, 1, 0, 0);
ctx.fillRect(0, 0, 50, 50);
复制

在这里插入图片描述

转载请注明出处或者链接地址:https://www.qianduange.cn//article/915.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

02_jQuery与Ajax

2024-02-12 14:02:05

jQuery

2024-01-31 12:01:10

echarts实现正负轴柱状图

2024-02-12 14:02:21

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!