讲给后台程序员看的前端系列教程(40)——canvas
C语言自学完备手册(33篇)
Android多分辨率适配框架
HTML5前端开发实战系列教程
MySQL数据库实操教程(35篇图文版)
推翻自己和过往——自定义View系列教程(10篇)
走出思维困境,踏上精进之路——Android开发进阶精华录
讲给Android程序员看的前端系列教程(40集免费视频教程+源码)
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
Hello canvas
在HTML5新增了canvas标签用于绘制图形,比如:文本、几何图形、路径、图片等等。该标签和其他HTML标签比起来没有多大的不同,除了指定常见的id、class、style等通用属性外,还可以通过height属性和width属性指定canvas的高和宽。嗯哼,我们先来看一个canvas的入门示例:
<!DOCTYPE html>
<!-- 本文作者:谷哥的小弟-->
<!-- 博客地址:https://blog.csdn.net/lfdfhl-->
<html lang="en"><head><meta charset="UTF-8"><title>canvas</title><style type="text/css">canvas {border: 2px;border-style: solid;border-color: red;}</style><script type="text/javascript">var helloCanvas = function() {var canvas = document.getElementById("cvs");var crc2d = canvas.getContext("2d");crc2d.fillStyle = "yellowgreen";crc2d.fillRect(10, 10, 100, 100);}</script></head><body><input type="button" value="Hello canvas" onclick="helloCanvas()"><br><br><canvas id="cvs" width="500" height="300"></canvas></body></html>
运行后效果如下图所示:
这段代码的逻辑很简单:获取canvas标签,然后在canvas中画了一个矩形。但是,请注意:绘制图形的这个操作是谁完成的呢?是画布本身么?不是,而是通过getContext(“2d”)获取到的CanvasRenderingContext2D对象,即代码:
var crc2d = canvas.getContext(“2d”);
CanvasRenderingContext2D 对象提供了一组用来在画布上绘制的图形函数。接下来,我们来一起学习CanvasRenderingContext2D的常见用法和操作。
绘制圆形
请看如下示例:
<!DOCTYPE html>
<!-- 本文作者:谷哥的小弟-->
<!-- 博客地址:https://blog.csdn.net/lfdfhl-->
<html lang="en"><head><meta charset="UTF-8"><title>canvas</title><style type="text/css">canvas {border: 2px;border-style: solid;border-color: red;}</style><script type="text/javascript">var draw = function() {var canvas = document.getElementById("cvs");var crc2d = canvas.getContext("2d");crc2d.beginPath();crc2d.arc(70, 70, 50, 0, 2 * Math.PI);crc2d.strokeStyle = "blue";crc2d.stroke();}</script></head><body><input type="button" value="canvas" onclick="draw()"><br><br><canvas id="cvs" width="500" height="300"></canvas></body></html>
运行后效果如下图所示:
在该示例中利用CanvasRenderingContext2D.arc( )绘制了圆形
绘制文本
请看如下示例:
<!DOCTYPE html>
<!-- 本文作者:谷哥的小弟-->
<!-- 博客地址:https://blog.csdn.net/lfdfhl-->
<html lang="en"><head><meta charset="UTF-8"><title>canvas</title><style type="text/css">canvas {border: 2px;border-style: solid;border-color: red;}</style><script type="text/javascript">var draw = function() {var canvas = document.getElementById("cvs");var crc2d = canvas.getContext("2d");crc2d.font = "40px 楷体";crc2d.fillText("本文作者:谷哥的小弟", 50, 50);}</script></head><body><input type="button" value="canvas" onclick="draw()"><br><br><canvas id="cvs" width="500" height="300"></canvas></body></html>
运行后效果如下图所示:
除了此处使用的fillRect( )之外CanvasRenderingContext2D还提供了strokeText( )方法用于绘制文本。
绘制图片
请看如下示例:
<!DOCTYPE html>
<!-- 本文作者:谷哥的小弟-->
<!-- 博客地址:https://blog.csdn.net/lfdfhl-->
<html lang="en"><head><meta charset="UTF-8"><title>canvas</title><style type="text/css">canvas {border: 2px;border-style: solid;border-color: red;}</style><script type="text/javascript">var draw = function() {var canvas = document.getElementById("cvs");var crc2d = canvas.getContext("2d");var myGirlImage = new Image();myGirlImage.src = "img/cutegirl.jpg";myGirlImage.onload = function() {crc2d.drawImage(myGirlImage, 0, 0);}}</script></head><body><input type="button" value="canvas" onclick="draw()"><br><br><canvas id="cvs" width="500" height="300"></canvas></body></html>
运行后效果如下图所示:
在本示例中使用了.drawImage(image, dx, dy);按照图片原本的大小进行绘制。除此以外,还可以采用方法drawImage(image, dx, dy, dWidth, dHeight);对图片进行缩放绘制;亦可以采用drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);从原图中扣取部分图像进行绘制
绘制世界
本文列举了几种常见的图形绘制,但这仅仅只是CanvasRenderingContext2D的九牛一毛罢了。不论是Android还是HTML5,关于图形的绘制都是一个庞大的体系;毕竟这两个哥们在某种角度来说都是靠UI吃饭的。我们可以在Android里的onDraw( )中画得缤纷绚丽,我们可以用CanvasRenderingContext2D画得灿烂夺目。多想有一天,遇见了马良,我可以借他的神笔,画出一个美好世界。
讲给后台程序员看的前端系列教程(40)——canvas相关推荐
- 讲给后台程序员看的前端系列教程(19)——CSS的层叠性与继承性以及优先级
C语言自学完备手册(33篇) Android多分辨率适配框架 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View系列教程(10篇) 走出思维困境 ...
- 讲给后台程序员看的前端系列教程(11)——HTML综合练习
C语言自学完备手册(33篇) Android多分辨率适配框架 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View系列教程(10篇) 走出思维困境 ...
- 讲给后台程序员看的前端系列教程(06)——HTML5标签(5)
C语言自学完备手册(33篇) Android多分辨率适配框架 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View系列教程(10篇) 走出思维困境 ...
- 讲给后台程序员看的前端系列教程(38)——事件处理
C语言自学完备手册(33篇) Android多分辨率适配框架 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View系列教程(10篇) 走出思维困境 ...
- 讲给后台程序员看的前端系列教程(52)——Bootstrap轮播图
C语言自学完备手册(33篇) Android多分辨率适配框架 JavaWeb核心技术系列教程 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View ...
- 讲给后台程序员看的前端系列教程(02)——HTML5标签(1)
C语言自学完备手册(33篇) Android多分辨率适配框架 HTML5前端开发实战系列教程 MySQL数据库实操教程(35篇图文版) 推翻自己和过往--自定义View系列教程(10篇) 走出思维困境 ...
- 写给程序员看的“幻灯片”制作教程
大家好,我叫谢伟,是一名程序员. 如果你比较关注国外开发者大会,你经常可以看到,一些程序员分享一些在线可以查看的"幻灯片",当然这里的幻灯片和微软 Office 旗下的 Power ...
- 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(一)
一.计算机编程基础 编程语言 编程语言与标记语言的区别 编程语言 有很强的逻辑和行为能力,有if else等具有逻辑性和行为能力的指令,主动 标记语言(html)不用于向计算机发出指令,常用于格式化和 ...
- 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(jQuery1)
jQuery概述 JavaScript库 jQuery概述 jQuery优点 jQuery的基本使用 入口函数 jQuery的顶级对象$ DOM对象和jQuery对象 DOM对象和jQuery对象相互 ...
最新文章
- 机械臂底层通信协议说明
- 见鬼,结果还就这样了
- pde lec 6 part 2
- CRMEB小程序安装说明
- LiveVideoStack线上分享第五季(十二):移动端多种通话场景统一技术方案实践...
- python神经网络教程16_Python深度学习之神经网络视频
- MySQL流浪记(四)—— DDL和DML区别与介绍
- session mysql java_PHP自定义session处理方法,保存到MySQL数据库中
- template标签_C++核心准则T.65:使用标签分发提供函数的不同实现
- Spring Cloud Config 规范 1
- 高德地图获取经纬度坐标
- java 快速删除文件夹_java File删除文件夹完整版
- mysql删除图书信息,图书管理系统(一):出版社列表增加、删除和编辑
- bzoj 3717 [PA2014]Pakowanie
- 车来了实时公交接口API免费注册使用
- WPS内嵌图片怎样使用Java获取图片?
- mysql输出当前是第几周使用week和weekofyear的区别
- 分享一款超级好用的Windows清理软件
- Arch下 OpenJDK shows intermittent performance and UI issues. We recommend using the Oracle JRE/JDK.
- 炫酷登录界面(html+css)