Canvas学习和基本属性介绍以及判断浏览器是否支持canvas

本文介绍了如何创建HTML5 Canvas元素,并详细讲解了如何判断浏览器是否支持Canvas。接着,通过实例展示了如何绘制直线、矩形、圆形和三角形,以及如何清空画布。这些基础知识为使用Canvas进行更复杂的图形操作打下了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 创建canvas元素

如果要向界面中添加canvas元素,可以使用以下代码

<canvas id="myCanvas" style="border:1px solid;" width="300"  height="150"></canvas>
  
 <script>
   var c = document.getElementById("myCanvas");//获取canvas元素
   var ctx = c.getContext("2d");//通过canvas的getContext方法来获取其上下文,创建context对象,以允许其进行2d绘制
</script>    
   

这里的getContext("2d"),是用于返回内建的html5,对象(CanvasRenderingContext2D),使用该对象可在canvas中绘制图形,目前强制支持的只有2d,即二维绘图,如果将来能够支持三维绘图,则getContext方法可能会允许使用3d这个参数。

二、判断浏览器是否支持canvas

判断浏览器是否支持canvas可以判断浏览器中是否支持getContext函数,代码如下:

var canvas = document.getElementById("myCanvas");
if (canvas.getContext) {
    console.log("您的浏览器支持Canvas!");
   
} else {
   console.log("您的浏览器不支持canvas!");
}

三、绘制简单的图形

3.1绘制直线

moveTo():规定起始点,简历新的子路径

lineTo():规定直线的终点,如果没有使用moveTo,则lineTo的功能等同于moveTo()

stroke():该方法用于绘制一条直线,

//绘制直线
var c1 = document.getElementById("myCanvas1");
var ctx1 = c1.getContext("2d");
ctx1.moveTo(0, 0);
ctx1.lineTo(200, 100);
ctx1.stroke();

3.2绘制矩形

// 绘制矩形
var canvas = document.getElementById("myCanvas");
if (canvas.getContext) {
    console.log("您的浏览器支持Canvas!");
    var ctx = canvas.getContext("2d");
    ctx.fillStyle = "#FF00FF";
    ctx.fillRect(50, 25, 100, 50);
    ctx.strokeStyle = "#ffffff";
    ctx.strokeRect(75, 35, 50, 25);
} else {
    alert("您的浏览器不支持canvas!");
}

上述代码中,fillStyle用于填充图形,fillRect用于绘制填充的矩形,fillRect(x,y,width,height);

strokeStyle用于绘制线条,strokeRect(x,y,width,height)用于绘制线条的矩形

3.3绘制圆形

主要使用以下方法

beginPath():用于开始绘制路径;

ctx.arc(x,y,startAngle,endAngle,anticlockwise),其中anticlockwise表示是否是顺时针绘制;

closePath():表示将图形闭合起来

//绘制圆形 半径为50像素的圆形
var c2 = document.getElementById("myCanvas2");
var ctx2 = c2.getContext("2d");
ctx.fillStyle = "#FF00FF";
ctx2.beginPath();
ctx2.arc(100, 75, 50, 0, Math.PI * 2, true);
ctx2.closePath();
ctx2.fill();

其中Math.PI值为Π(圆周率3.1415.....)

3.4绘制三角形

//绘制三角形 4:实心 5:实线
var c4 = document.getElementById("myCanvas4");
var ctx4 = c4.getContext("2d");
ctx4.fillStyle = "#ff00ff";
ctx4.beginPath();
ctx4.moveTo(25, 25);
ctx4.lineTo(150, 25);
ctx4.lineTo(25, 150);
ctx4.fill();

var c5 = document.getElementById("myCanvas5");
var ctx5 = c5.getContext("2d");
ctx5.strokeStyle = "#ff00ff";
ctx5.beginPath();
ctx5.moveTo(25, 25);
ctx5.lineTo(150, 25);
ctx5.lineTo(25, 150);
ctx5.closePath();
ctx5.stroke();

绘制时注意使用beginPath()和closePath()来闭合路径,注意三个坐标点的指向

3.5清空画布

使用clearRect可以清楚指定区域的所有图形。

代码如下

<button type="button" onclick="clearMap">清空画布</button>
<script>
//下面代码可以清除上述的三角形
function clearMap() {
    ctx5.clearRect(0, 0, 300, 150);
}
</script>

 

看完上述文章即可自己动手画一下简单的canvas图形了,后续文章会继续讲解canvas的图形变换,图形组合裁切,canvas中使用图片,以及利用canvas制作图片切片,欢迎大家评论留言指正不足

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值