一、html5新特性--canvas绘图-文本(重点)

#常用方法与属性

-ctx.strokeText(str,x,y);   绘制描边文字(空心)

str:绘制文本

x,y:字符串左上角位置(以文本基线为准)

-ctx.fillText(str,x,y);       绘制填充文字(实心)

-ctx.font="19px SimHei";  前面文本大小/字体

-ctx.textBaseline = "top";  调整文本基线[top/alphabetic/bottom]

二、HTML5新特性--canvas绘图-路径 (重点)

路径:绘制不规则图形 (复杂)

path:由多个坐标点组件任意图形,图形本身不可见

可以描边或者填充

-ctx.beginPath();   开始一条新路径(上一条路径结束)

-ctx.moveTo(x,y);   移动到指定点(x,y)

-ctx.lineTo(x,y);     从当前点到指定点绘制一条直线(x,y)

-ctx.stroke();       描边

-ctx.fill();          填充

-ctx.closePath();    闭合一条路径(结束点到开始点画一条直线)

-ctx.arc(cx,cy,r,start,end);     绘制一条圆拱形

cx,cy  圆心位置(x,y)

r     半径

start  开始角度

end   结束角度

#参数start,end 不使用常用角度完成设置,使用弧度设置

#角度 0~360    弧度0~2PI

#采用角度转换弧度    90角度*Math.PI/180=弧度

三、HTML5新特性--canvas绘图-图像 (重点)

#?图片可以使用img标准显示网页为什么用canvas[复杂]

#?图片位置:一个软件项目所有图片保存服务器

(1)图片版权

(2)图片数量巨大

#操作过程将图片绘制canvas画布上

(1)创建图像对象            p3 = new Image();

(2)下载图像                p3.src = "p3.png"; //2ms

(3)为图片绑定事件下载成功  p3.onload = function(){...}

(4)绘制图片                ctx.drawImage(p3,x,y)

(4)绘制图片                ctx.drawImage(p3,x,y,w,h)

#p3  图片对象

#x,y  图片或者文本或者图片左上角位置(原始大小图片)

#w,h 图片宽度和高度(拉伸)

四、HTML5新特性--canvas绘图-变形 (重点)

canvas绘制时对图片进行旋转操作

-rotate(deg)         旋转

(1)旋转画笔对象

(2)旋转轴心在画布原点

(3)旋转角度会有累加操作

(4)deg不同角度弧度

-translate(x,y)      移动原点(移动轴心)到指定位置

#原则:什么时候使用如下两个方法

#当画布上绘制一个以上元素时必须使用下面方法

-save()            保存画笔状态(原点;角度;颜色;...)

-restore()          恢复到画笔保存时状态(原点;角度;颜色;..)

#画图时:如果画布中有多个(一个以上)元素,画之前先保存状态

#画之后恢复状态(元素之间不会受到影响)

五、HTML5新特性--canvas绘图-变形 (弹幕)

#弹幕:专业视频网站常用功能

当用户在观看视频希望(参与感)发表自己想法

情绪/观点

发表内容转文字浮动视频上方

#理解用户操作

(1)输入文字 修改文字大小;修改文字颜色

(2)用户点击"发送按钮" 将内容显示视频上方

#(#)项目工作流程!!!

(1)遇到问题:如果发送文字过多效率有一定影响

解决方案:池子

(2)创建程序结构

当设计大规则项目采用方式:

单一原则(一个程序完成一种任务)

#第一个程序:index.html

(1)创建元素 显示视频 画布

(2)加载其它 js

#第二个程序:msg.js 完成所有弹幕任务(一家餐厅)

#第三个程序:main.js 项目入口程序:调用msg.js 方法(大楼主管)

六、6.1 HTML5新特性-- -变形 (弹幕)-index.html

(1)视频元素:video     #底层 z-index:0

(2)画布元素:  canvas   #上层  z-index:1

(3)创建输入区域

[输入文字区域;文字大小下拉列表;文字颜色下拉列表;发送按钮]

(4)加载main.js 文件(主管)

(5)加载msg.js  文件(一家餐厅)

6.2  HTML5新特性-- -弹幕需要数据--msg

(1)每一个弹幕中文字需要位置(x,y)

(2)每一个弹幕中文字(m)

(3)每一个弹幕中文字颜色(color)

(4)每一个弹幕中文字大小(font)

(5)每一个弹幕中文字速度(spd)

(6)每一个弹幕中文字(状态 alive true 显示 false 隐藏)

(7)100个弹幕

6.3  HTML5新特性-- -程序调用流程

-msg.js 所有与弹幕相关数据函数

#节省内存(原型)

(1)创建弹幕构造函数   var msgObj = function(){}

x,y,m,color,font,spd..

(2)创建弹幕初始化函数 msgObj.prototype.init = function(){}

给x,y,m,color,font,spd 赋初始值(开始之前值)

(3)创建弹幕绘制函数   msgObj.prototype.draw = function(){}

依据上面x,y,..把弹幕绘制画布上

-main.js 负责创建弹幕对象并且调用相关函数

function game(){

init();

gameloop();

}

function init(){

负责创建弹幕对象并且调用init方法

msg = new msgObj();

msg.init();

}

function gameloop(){

创建定时器调用gameloop

msg.draw();

}

document.body.onload = game;

-index.html

HTML新特性--canvas绘图-文本的更多相关文章

  1. H5新特性-canvas绘图--渐变对象路径(最复杂)--图片--变形操作

    今天的目标 3.1:canvas绘图--(重点掌握:渐变对象.路径.图片.变形) 3.2:canvas绘图--渐变对象 线性渐变: linearGradient 径向渐变: var g = ctx.c ...

  2. H5新特性——--第三方绘图工具库 echarts(canvas)---SVG绘图

    今天学习的内容 3.1:h5新特性---第三方绘图工具库 echarts(canvas) 百度 echarts;d3;two.js;.... 3.2:h5新特性---SVG绘图 3.2:h5新特性-- ...

  3. html5新特性canvas绘制图像

    在前端页面开发过程中偶尔会有需要对数据进行相应的数学模型展示,或者地理位置的动态展示,可能就会想到用canvas,网上有很多已经集成好的,比如说类似echarts,确实功能非常强大,而且用到了canv ...

  4. ES6新特性--多行文本

    由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用` ... `表示: `这是一个 多行 字符串`;

  5. H5新特性-视频,音频-Flash-canvas绘图

    json格式 json - > AJAX json:数据格式,通常是以字符串形式表示 对象 {"name":"james","age" ...

  6. Java7 新特性 数值文本表示法

    今天和大家分享下 java7中新特性-数值文本表示法 首先,在原来jdk1.6中 如果需要将一个二进制的数值转换成十进制的话,一般情况下都会以下面的代码方式去实现. public static voi ...

  7. HTML5 十大新特性(五)——SVG绘图

    相对于canvas绘图,SVG是一种绘制矢量图的技术.全称叫做Scalable Vector Graphics,可缩放的矢量图,在2000年就已经存在,H5把它纳入了标准标签库,并进行了一些瘦身.需要 ...

  8. H5新特性---SVG--椭圆--直线--文本--滤镜(高斯滤镜--模糊)--地理定位

    今天的目标 3.1:h5新特性--SVG--椭圆 <ellipse rx="" ry=""  cx="" cy="" ...

  9. H5新特性之canvas

    canvas无疑是H5之中最受欢迎的新特性了,它可以让浏览毫无费力的画出各种图案,动画. canvas的性能不会因为画布上的图案多少而改变,因此做动画用canvas性能也相当优秀. canvas最基本 ...

随机推荐

  1. uniqid用法

    uniqid():妙用就是以当前时间微妙为单位,返回的唯一ID 我们可以用到密码加密和接口加密的功能上,比如 $salt = substr(uniqid(rand()), -6);//截取倒数6位$p ...

  2. SpringCloudAlibaba实战教程系列

    一.简介 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开 ...

  3. 解析HTML、JS与PHP之间的数据传输

    在电商网站搭建过程中,前端经常会向后端请求数据,有时候通过HTML.JS和PHP文件的处理来实现数据的连通.通常情况下,用户在HTML中做关键字操作,JS对提交的表单进行数据处理,向后端发起ajax请 ...

  4. element UI排坑记(一):判断tabs组件是否切换

    之所以将这个问题列在排坑记之中,是因为官方组件的一个属性颇有些隐蔽,这个问题曾经折腾了本人较多时间,始终思维固着,且使用搜索引擎也不容易搜索到答案,故记之.然而实际解决却是相当简单的. 一.问题描述 ...

  5. U-Mail邮件系统详解邮件收发延迟原因及解决方案

    邮件是现代社会办公最常见.最频繁的通联工具,但使用邮件系统时,用户普遍最关心两个安全,一个是安全性,邮件会不会被窃密?自己的邮箱账号会不会被盗取被攻占呢?保存的数据会不会丢失呢?关于这个问题,国内知名 ...

  6. 数学--数论--hdu 6216 A Cubic number and A Cubic Number (公式推导)

    A cubic number is the result of using a whole number in a multiplication three times. For example, 3 ...

  7. 数学--数论--HDU 6128 Inverse of sum (公式推导论)

    Description 给nn个小于pp的非负整数a1,-,na1,-,n,问有多少对(i,j)(1≤i<j≤n)(i,j)(1≤i<j≤n)模pp在意义下满足1ai+aj≡1ai+1aj ...

  8. P1522 牛的旅行 Cow Tours(floyd)

    题目描述 农民 John的农场里有很多牧区.有的路径连接一些特定的牧区.一片所有连通的牧区称为一个牧场.但是就目前而言,你能看到至少有两个牧区通过任何路径都不连通.这样,Farmer John就有多个 ...

  9. 图论--DFS总结

    1.Key word:①双向DFS  ②回溯 今天就看到了这么多DFS,其实DFS更倾向于枚举所有情况. 对于双向DFS,我们考虑看看最短路,起点做一下搜索,记录一下到所有点的距离,终点做一下搜索,记 ...

  10. 嵌入式Linux学习笔记(三) 字符型设备驱动--LED的驱动开发

    在成功构建了一个能够运行在开发板平台的系统后,下一步就要正式开始应用的开发(这里前提是有一定的C语言基础,对ARM体系的软/硬件,这部分有疑问可能要参考其它教程),根据需求仔细分解任务,可以发现包含的 ...