Canvas渲染效果有哪些?

Canvas 提供了一系列绘图 API,可以实现多种渲染效果。以下是一些常见的 Canvas 渲染效果:

  1. 基本图形绘制:使用 Canvas 可以绘制基本的图形,如线条、矩形、椭圆、多边形等。
  2. 渐变和纹理:Canvas 支持线性渐变和径向渐变,还可以通过图像数据来创建纹理效果。
  3. 阴影和光照效果:通过设置 Canvas 的阴影属性,可以模拟阴影效果;通过使用不同的光照模式,可以实现不同方向和颜色的光照效果。
  4. 图像处理:Canvas 可以加载和绘制图像,还可以对图像进行各种处理,如缩放、旋转、裁剪、滤镜等。
  5. 动画效果:通过定时器或 requestAnimationFrame API,可以创建各种动画效果,如移动、旋转、缩放等。
  6. 交互性:Canvas 支持鼠标和触摸事件,可以实现与用户的交互功能。

以下是一个简单的 Canvas 示例,用于绘制一个带有渐变和阴影效果的矩形:

示例效果与源代码:

运行效果

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
<!DOCTYPE html>
<html>
<body>

<canvas id="myCanvas" width="500" height="500" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.
</canvas>

<script>
window.onload = function() {
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');

// 设置渐变
var gradient = ctx.createLinearGradient(0, 0, 200, 0);
gradient.addColorStop(0, 'red');
gradient.addColorStop(1, 'blue');

// 设置阴影
ctx.shadowOffsetX = 5;
ctx.shadowOffsetY = 5;
ctx.shadowBlur = 10;
ctx.shadowColor = 'black';

// 绘制矩形
ctx.beginPath();
ctx.rect(50, 50, 200, 200);
ctx.fillStyle = gradient; // 应用渐变填充
ctx.fill(); // 填充矩形
}
</script>

</body>
</html>

尝试一下 »

在上述示例中,首先通过 getElementById 获取了 Canvas 元素,然后通过 getContext('2d') 获取了 2D 渲染上下文。接着使用 createLinearGradient 方法创建了一个线性渐变,并设置了渐变的颜色。然后设置了阴影的偏移量、模糊半径和颜色。最后使用 beginPathrect 方法绘制了一个矩形,并使用 fillStyle 将渐变应用于矩形填充,然后使用 fill 方法填充矩形。运行这个示例会在 Canvas 上绘制出一个带有渐变和阴影效果的矩形。