canvas学习笔记-2d画布基础

栏目: Html5 · 发布时间: 6年前

内容简介:< canvas > 元素创造了一个固定大小的画布,其上的渲染上下文若要在canvas上绘图,首先得获取示例

一. Canvas是啥

  • < canvas > 是一个可以使用脚本(通常是js)来绘图的HTML元素
  • < canvas > 最早由Apple引入WebKit,用于Mac OS X 的 Dashboard和 Safari
  • 如今,所有主流的浏览器都支持它(IE9+,更低版本需引入Explorer Canvas来支持)

1. 开始画图(渲染上下文)

< canvas > 元素创造了一个固定大小的画布,其上的渲染上下文 CanvasRenderContext2D ,可以用来绘制和处理要展示的内容。

若要在canvas上绘图,首先得获取 CanvasRenderContext2D 2d渲染上下文。(此处指2d的,不谈webgl)

const canvas = document.getElementById('mycanvas');
const ctx = canvas.getContext('2d');
ctx.fillStyle = 'pink';
ctx.fillRect(10, 10, 300, 300);

示例

2. CanvasRenderContext2D的属性:

通过设置上下文的属性,可以指定绘图的样式。

所有属性如下:

属性 简介
canvas canvas元素
fillStyle 用来 填充 路径的当前的 颜色、模式或渐变
font 字体样式
globalAlpha 指定在画布上绘制的内容的不透明度
globalCompositeOperation 指定颜色如何与画布上已有的颜色组合(合成)
lineCap 指定线条的末端如何绘制
lineDashOffset 设置虚线偏移量
lineJoin 指定两条线条如何连接
lineWidth 指定画笔(绘制线条)操作的线条宽度
miterLimit 当 lineJoin 属性为 "miter" 的时候,这个属性指定了斜连接长度和线条宽度的最大比率
shadowBlur 模糊效果程度
shadowColor 阴影颜色
shadowOffsetX 阴影水平偏移距离
shadowOffsetY 阴影垂直偏移距离
strokeStyle 用于画笔( 绘制 )路径的颜色、模式和渐变
textAlign 文本的对齐方式
textBaseline 文字垂直方向的对齐方式

3. Canvas宽高

  • Canvas的宽高需要用属性值width,height来指定
  • 若未指定,则Canvas 的默认大小为300×150
  • 通过样式指定的宽高,只是canvas元素的显示大小,并不是绘图环境的大小
canvas {width: 1000px;height: 600px;}
<canvas id="mycanvas" width="1000" height="600"></canvas>
<canvas id="mycanvas1" width="500" height="300"></canvas>
<canvas id="mycanvas2"></canvas>
...
ctx.fillStyle = "red";
ctx.fillRect(10, 10, 100, 100);

宽高示例

为什么样式设置了同样大小,显示却截然不同的情况呢?

  • canvas本身有两套大小:一个是 元素本身 大小,一个是 绘图表面 (drawing surface)的大小
  • 如果通过width,height属性来设置,是同时修改了元素本身和绘图表面大小,
  • 如果canvas元素的大小不符合绘图表面大小时,则会 对绘图表面进行缩放,使之符合元素本身大小
  • 无特殊需求,建议直接使用canvas的width和height就好

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

An Introduction to the Analysis of Algorithms

An Introduction to the Analysis of Algorithms

Robert Sedgewick、Philippe Flajolet / Addison-Wesley Professional / 1995-12-10 / CAD 67.99

This book is a thorough overview of the primary techniques and models used in the mathematical analysis of algorithms. The first half of the book draws upon classical mathematical material from discre......一起来看看 《An Introduction to the Analysis of Algorithms》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具