0
点赞
收藏
分享

微信扫一扫

canvas基础1

canvas基础1

一、canvas 是 HTML5 提供的画画本

// 创建 <canvas> 元素时至少要设置其 width 和 height 属性,这样才能告诉浏览器在大面积上绘图。

// 出现在开始和结束标签之间的内容是后备数据,会在浏览器不支持 <canvas> 元素时显示。

<canvas id="drawing" width="200" height="200">
    你的浏览器不支持HTML5
</canvas>
    
// 要在画布上绘制图形,首先要取得绘图上下文,getContext() 方法可以获取对绘图上下文的引用。(2
    d 代表平面图形)
    
    
<script>  
let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
         
  let context = drawing.getContext("2d");
  
  // 其他代码
}
</script>

二、填充和描边

// 2d上下文的坐标原点(0,0)在 <canvas>元素的左上角。
// 所有坐标值都相对于该点计算,因此 x 坐标向右增长,y 坐标向下增长。

// 2d上下文有两个基本绘制操作:填充和描边。
// 填充以指定样式(颜色、渐变或图像)自动填充形状,而描边只为图形边界着色。
// 填充样式	-- fillStyle
// 描边样式 -- strokeStyle


let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
         
  let context = drawing.getContext("2d");
  context.strokeStyle = "red";
  context.fillStyle = "#0000ff";
}

三、绘制矩形

// 矩形是唯一一个可以可以直接在 2d 绘图上下文中绘制的形状。
// 与绘制矩形相关的方法有3个:fillRect()、strokeRect()和clearRect()。
// 四个参数(x坐标、y坐标、宽度、高度)


let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
  let context = drawing.getContext("2d");

         
  // 画一个红色矩形
  context.fillStyle = "#ff0000";
  context.fillRect(10, 10, 50, 50);
         
  // 画一个半透明的蓝色矩形
  context.fillStyle = "rgba(0,0,255,0.5)";
  context.fillRect(30, 30, 50, 50);
}

// 浏览器输出如下

绘制矩形1 canvas01.png

// strokeRect() 方法使用通过 strokeStyle 的属性指定的颜色绘制矩形轮廓。

let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
  let context = drawing.getContext("2d");

         
  // 画一个红色轮廓的矩形
  context.strokeStyle = "#ff0000";
  context.strokeRect(10, 10, 50, 50);
         
  // 画一个半透明的蓝色轮廓的矩形
  context.strokeStyle = "rgba(0,0,255,0.5)";
  context.strokeRect(30, 30, 50, 50);
}

// 浏览器输出如下

绘制矩形2 canvas02.png

// 使用 clearRect() 方法可以擦除画布中某个区域。
// 该方法用于把绘图上下文中来的某个区域变透明。

let drawing = document.getElementById("drawing");
         
// 确保浏览器支持<canvas>
if (drawing.getContext) {
  let context = drawing.getContext("2d");
         
  // 画一个红色矩形
  context.fillStyle = "#ff0000";
  context.fillRect(10, 10, 50, 50);
         
  // 画一个半透明的蓝色矩形
  context.fillStyle = "rgba(0,0,255,0.5)";
  context.fillRect(30, 30, 50, 50);
         
  // 清除与前面两个矩形重叠的一个小矩形
  context.clearRect(40, 40, 10, 10);
}

// 浏览器输出如下

绘制矩形3 canvas03.png

博文查考

JavaScript 高级程序设计(第4版) --【美】马特.弗里斯比 著

举报

相关推荐

0 条评论