专栏首页编程直播室Canvas2D画线和面1.Html中的画布2.渲染上下文3.画一个方块4.画一条线

Canvas2D画线和面1.Html中的画布2.渲染上下文3.画一个方块4.画一条线

我们知道canvas是画布,今天我们就来画布上面画线和面。

1.Html中的画布

<!doctype html>
<html lang="en">
 <head>
  <title>Canvas 2D画线和面</title>
 </head>
 <body>
  <canvas id="cv" width="150" height="150"></canvas>
 </body>
</html>

canvas是HTML5中的元素,当没有设置宽度和高度的时候,canvas会初始化宽度为300像素和高度为150像素。该元素可以使用CSS来定义大小;如果在绘制时图像会伸缩以适应它的框架尺寸,那么CSS的尺寸与初始画布的比例不一致,会出现扭曲。

2.渲染上下文

canvas起初是空白的。为了展示,首先脚本需要找到渲染上下文,然后在它的上面绘制。<canvas> 元素有一个做 getContext() 的方法,这个方法是用来获得渲染上下文和它的绘画功能。getContext()只有一个参数,上下文的格式。对于2D图像而言你可以使用 CanvasRenderingContext2D。

var canvas = document.getElementById('cv');
var ctx = canvas.getContext('2d');

兼容性检查 在不支持 <canvas> 标签的浏览器中如何展示替换内容。通过简单的测试getContext()方法的存在,脚本可以检查编程支持性。上面的代码片段现在变成了这个样子:

var canvas = document.getElementById('tutorial');
if (canvas.getContext){
  var ctx = canvas.getContext('2d');
  // drawing code here
} else {
  // canvas-unsupported code here
}

3.画一个方块

获得了context,就好像获得了画笔,这时我们在画布上画下一个方块:

  ctx.fillStyle = "rgba(0, 0, 200, 0.5)";
  ctx.fillRect (30, 30, 55, 50);

CanvasRenderingContext2D.fillRect() 是Canvas 2D API 绘制填充矩形的方法。矩形的起点在 (x, y) 位置,矩形的尺寸是 width 和 height ,fillStyle 属性决定矩形的样式。

4.画一条线

同理,画一条线也是调用ctx的方法:

ctx.beginPath();
ctx.moveTo(0,0);
ctx.lineTo(100, 100);
ctx.stroke();

CanvasRenderingContext2D.stroke() 是 Canvas 2D API 使用非零环绕规则,根据当前的画线样式,绘制当前或已经存在的路径的方法。 上面的代码中我们先绘制一条路径,然后通过stroke方法用当前的样式把这个路径渲染出来。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Canvas的HelloWorld文本的样式文本的测量总结

    孙亖
  • Angular 2 模块(Modules)

    孙亖
  • Ionic安装环境安装关于墙国环境创建Ionic项目测试运行项目

    孙亖
  • HTML5炫酷流星动画特效教程

    这是一款HTML5炫酷光粒子动画特效。该特效通过js在页面中生成canvas元素,并通过算法在其中生成炫酷的光粒子动画特效。 使用方法

    用户5997198
  • [计算机网络] 00 概述

    1969年11月美国国防部建立了一个名为ARPANET(Internet的雏形)的分组交换网络,当前时间是2019年,50年过去了,如今的网络已经融入了社会的方...

    blackheart
  • NeurIPS 2019 Spotlight | Cascade RPN,结构的艺术带来极致的提升

    论文:Cascade RPN: Delving into High-Quality Region Proposal Network with Adaptive ...

    VincentLee
  • mysqldump 导出数据库各参数详细说明

    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT...

    大道七哥
  • mysql记录

    黒之染
  • concent 骚操作之组件创建&状态更新

    随着react 16.8发布了稳定版本的hook特性,原来官网文档里对SFC的描述也修改为了FC,即无状态函数组件变更为了函数组件,官方代言人Dan Abram...

    腾讯新闻前端团队
  • python变量名命名规则

    生信交流平台

扫码关注云+社区

领取腾讯云代金券