【canvas使用】
canvas的本质
1、<canvas>
标签只是图形容器,相当于一个画布,canvas
元素本身是没有绘图能力的。
2、所有的绘制工作必须在 js
内部完成,相当于使用画笔在画布上画画。
使用
- 必须指定宽高,用到getcontext()方法
<canvas id="charts" width="800" height="400"></canvas>
context
是一个封装了很多绘图功能的对象(html5里新增的),我们在页面中创建一个canvas
标签之后,首先要使用getContext()
获取canvas
(用原生js获取元素),目前getContext()
的参数只有 2d,暂时还不支持 3d
分类
1、js获取元素
const canvas = document.getElementById('charts');
const context = canvas.getContext('2d');
2、
绘制线段
moveTo(x, y)
:把路径移动到画布中的指定点,不创建线条lineTo(x, y)
:添加一个新点,然后在画布中创建从该点到最后指定点的线条
context.strokeStyle = 'yellowgreen';
context.moveTo(0, 0);
context.lineTo(100, 100);
context.stroke();
绘制矩形
fillRect(x, y, width, height)
绘制填充颜色的矩形
strokeRect(x, y, width, height)
绘制线条的矩形
context.fillStyle = "pink";
context.strokeStyle = "darkred";
context.fillRect(0, 0, 100, 100);
context.strokeRect(120, 0, 100, 100);
绘制圆形
arc(x, y, radius, starAngle, endAngle, anticlockwise)
- x : 圆心的 x 坐标
- y:圆心的 y 坐标
- radius : 半径
- starAngle :开始角度
- endAngle:结束角度
- anticlockwise :是否逆时针(true)为逆时针,(false)为顺时针
context.beginPath();
context.arc(300, 350, 100, 0, Math.PI * 2, true);
//不关闭路径路径会一直保留下去
context.closePath();
context.fillStyle = 'rgba(0,255,0,0.25)';
context.fill();
// 或
// context.stroke(); // 此时就会有问题
清除路径
清除绘画的路径,多个图形就不会连接在一起
context.beginPath()
context.closePath()
清除矩形区域
当在一个画布反复绘制图形,需要将上一次的图形清空
clearRect(x, y, width, height)
绘制文字
fillText(text, x, y, maxWidth)
案例:绘制一个柱状图
一个少女心满满的例子带你入门 Canvas
【canvas使用】相关推荐
- canvas java 上传截图_在Vue项目中使用html2canvas生成页面截图并上传
使用方法 项目中引入 npm install html2canvas html代码 //html代码 js代码 // 引入html2canvas import html2canvas from 'ht ...
- 画布Canvas的使用
canvas.drawText();//画文本 canvas.drawArc();//画弧 canvas.drawCircle();//画圆 canvas.drawBitmap(); canvas.d ...
- Android 自定义View Canvas —— Bitmap
Bitmap 绘制图片 常用的方法有一下几种 (1) drawBitmap(@NonNull Bitmap bitmap, float left, float top, @Nullable Paint ...
- Android 自定义View —— Canvas
上一篇在android 自定义view Paint 里面 说了几种常见的Point 属性 绘制图形的时候下面总有一个canvas ,Canvas 是是画布 上面可以绘制点,线,正方形,圆,等等,需要和 ...
- android Canvas 最基础知识总结
学习Canvas 要先学习view 知识,这样才好学习 第一步 创建一个方法 让它继承 View 如下图 然后快捷键ait+/ 生成构造方法, 用来初始化View ,比如自定一个一些init()方法, ...
- canvas绘制的文字如何换行
<html><head><title>canvas绘制的文字如何换行</title><style type="text/css" ...
- 从0到1 html5 canvas,Html5 Canvas学习之路(五)
Canvas 图像(上) Canvas 图像API可以加载图像数据,然后直接将图像应用到画布上.还可以裁切.拼贴图像数据,以显示用户需要的部分.此外,Canvas还提供了像素数据的存储功能,这样就能对 ...
- SVG和canvas
1.SVG实现的圆环旋转效果 参考:http://www.softwhy.com/article-6472-1.html 2.SVG中的图形可以通过 transform="matrix(0 ...
- D3.js、HTML5、canvas 开发专题
https://www.smartdraw.com/genogram/ http://www.mamicode.com/info-detail-1163777.html D3折线图 https:// ...
- 7个华丽的基于Canvas的HTML5动画
说起HTML5,可能让你印象更深的是其基于Canvas的动画特效,虽然Canvas在HTML5中的应用并不全都是动画制作,但其动画效果确实让人震惊.本文收集了7个最让人难忘的HTML5 Canvas动 ...
最新文章
- android数据库三个方法有哪些,一个三年Android开发的总结 - 常见数据库问题总结...
- Leetcode 905. 按奇偶排序数组
- 学习笔记——XSLT转换器的使用(Xalan和Saxon) .(转)
- 贝叶斯判别分析的基本步骤_贝叶斯分析助你成为优秀的调参侠(1)
- vc picture控件的分类总结(转载)
- mysql分句执行_《Mysql 一条 SQL 语句是如何执行的?》
- 【链表】单链表的排序(归并排序)
- mysql判断是日期是第几周
- Linux编译libpcap
- 计蒜客 贝壳找房函数最值(好题,巧妙排序)
- 保护计算机组件免受esd,TVS管与ESD保护二极管的区别
- 网店营销忌讳效应:要知道别人不喜欢什么
- 计算机专业综合理论模拟测试卷五,2020银保监会考试题库:计算机类模拟试题练习(五)...
- TMS320C6748_ECAP_APWM
- ElementUI分页组件+Vue
- Arduino - 驱动HC-SR501 人体红外感应模块
- 自学C++之自定义数据类型与自定义类之数组使用4例
- 变化环境下渭河流域水文干旱演变特征剖析
- 【日常训练】2019-10-24am_xjoi结界[生与死的境界]/codeforces878E_贪心
- Proteus8.9 VSM Studio SDCC编译器仿真STC15W4K32S4系列013_iic_03_AT24C08
热门文章
- 掌门少儿打造高质课程,助力少年儿童全方位发展
- 揭秘;抖音美妆账号如何做?如何玩转抖音美妆类运营:国仁楠哥
- 智慧园区数据可视化大屏的优势分析
- 请大家帮忙看下这个shader的问题:
- 2021届Java开发求职-------面试实战之Vivo提前批
- web前端全套教程,入门必备
- ESD防护选型思路(二)
- AEIA2018 | 中国工程院院士李骏:智能网联汽车的安全和自主创新是当下的关键...
- 软件测试中的用户思维
- linux7台式机安装失败,台式机安装centos7提示“No Caching mode page found”