(4)Canvas绘图 —— 重点(5)SVG绘图(6)地理定位(7)拖放API..."> (4)Canvas绘图 —— 重点(5)SVG绘图(6)地">

HTML5 3

最新推荐文章于 2025-03-05 22:08:20 发布
转载 最新推荐文章于 2025-03-05 22:08:20 发布 · 278 阅读
· 0
· 0 ·
本内容遵循CC 4.0 BY-SA版权协议
原文链接:http://www.cnblogs.com/Hale-Proh/p/7199829.html
·
收录于

当前文章被以下社区和专栏收录:

复习:

HTML5新特性:

(1)新的语义标签和属性

(2)表单2.0

(3)视频和音频

  <video src="" autoplay loop controls muted poster preload="auto">

  <audio src="">

(4)Canvas绘图 —— 重点

(5)SVG绘图

(6)地理定位

(7)拖放API

(8)WebWorker

(9)WebStorage

(10)WebSocket

 

JS绘图技术:

<canvas width="600" height="400"></canvas>

var ctx = c.getContext('2d');

//常用属性

ctx.fillStyle = 颜色/渐变对象

ctx.strokeStyle =颜色/渐变对象

ctx.lineWidth = 1

ctx.font = '10px sans-serif'

ctx.textBaseline = 'alphabetic'

ctx.shadowColor = 'rgba(0,0,0,0)'

ctx.shadowOffsetX = 0

ctx.shadowOffsetY = 0

ctx.shadowBlur = 0

 

//常用方法

(1)绘制矩形

ctx.fillRect(x, y, w, h)

ctx.strokeRect(x, y, w, h)

ctx.clearRect(x, y, w, h)

(2)绘制文本

ctx.fillText(txt, x, y)

ctx.strokeText(txt, x, y)

ctx.measureText(txt).width

(3)绘制路径

(4)绘制图像

 

今日目标:

(1)使用Canvas绘制路径和图像 —— 重点&难点

(2)使用第三方绘图工具 —— Chart.js,掌握

 

 

1.使用Canvas绘制路径(Path)

  提示:Canvas中的路径概念与Photoshop中钢笔工具类似的。路径本身是不可见的,有三个用途:描边、填充(闭合)、裁剪(闭合)

  Canavs中与路径绘制相关方法:

  ctx.beginPath()   //开始一条新路径

  ctx.closePath()    //闭合路径,让最后一个锚点自动连接到第一个锚点

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

  ctx.lineTo(x,y)      //从当前点到指定点绘制直线路径

  ctx.arc()              //绘制拱形路径

  ctx.ellipse()         //绘制椭圆路径

  ctx.bezierCurveTo()    //绘制贝塞尔曲线路径

  ----------------------------------------------

  ctx.stroke()

  ctx.fill()

  ctx.clip()

 

练习:

(1)使用直线路径绘制坐标轴

      

(2)使用圆拱+定时器绘制可以前进的进度条

        

(3)创建一个函数:openMouth(),在画布上绘制如下的图形:

      

(4)创建一个函数:closeMouth(),在画布上绘制如下的图形:

      

(5)使用定时器,不停的调用openMouth()和closeMouth()

 

 

2.使用Canvas绘制图像

  提示:图片的定位点在图片的左上角。客户端JS必须等待图片加载完成才能开始绘制。

  var img = new Image();

  img.src = 'x.jpg';

  img.onload = function(){

      //图片已经加载完成了

      ctx.drawImage(img, x, y)   //使用默认的宽高

       ctx.drawImage(img, x, y, w, h)

  }

练习:           

(1)在画布的四个角各绘制一个小飞机

(2)在画布的中央绘制一个2倍标准大小的飞机

(3)*绘制一个可以随着鼠标而移动的小飞机,提示需要使用mousemove

   注意:Canvas绘图中,只有一个HTML元素——canvas!!其它图形图像都不是元素,不能绑定事件函数!!

(4)*绘制一个可以左右移动的小飞机

(5)**绘制一个可以在画布范围内走斜线移动的小飞机——碰到画布的任何一个边缘,立即反弹

 

 

小结:Canvas绘图可以绘制的内容:

(1)矩形: ctx.fillRect()   ctx.strokeRect()   ctx.clearRect()

(2)文本: ctx.fillText()   ctx.strokeText()   ctx.measureText()

(3)路径 - 描边/填充/裁剪

   ctx.beginPath()   ctx.closePath()

   ctx.moveTo()   ctx.lineTo()   ctx.arc()

   ctx.stroke()  ctx.fill()   ctx.clip()

(4)图像:  ctx.drawImage()

(5)

 

3.绘图上下文的状态改变和恢复 —— 难点&晦涩

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

  //可以将绘图上下文对象(即画笔对象)进行变形(transform)——与对Canvas施加CSS Transform样式不同,绘图上下文的变形只影响当前绘制的图形图像内容

  ctx.translate(x,y) //坐标轴原点平移到指定点,所有点的坐标都发生改变

  ctx.rotate(deg)   //画笔旋转,则内容旋转,轴点在坐标轴原点

  ctx.scale()           //画笔缩放

  ====================

  ctx.save()            //保存绘图上下文(画笔)当前的变形数据

  ctx.restore()              //恢复最近一次保存的画笔的变形相关的状态

 

 

练习:***有点坑——绘制四个小飞机,各在画布的一个角在绕着自己的中心在旋转。

 

 

项目中Canvas技术的主要用途:

(1)绘制统计图

(2)小游戏

(3)绘图板

(4)动态的背景(带交互带动画)

 

4.使用第三方统计图绘制工具——Chart.js——重点在于自学过程

  提示:第三方的绘图工具非常多!直接百度“JS绘图工具”!

  第三方工具的使用步骤:

  (1)打开官网,看工具介绍

       http://www.chartjs.org/

       Simple yet flexible JavaScript charting for designers & developers。一款开源的、提供了8中图表的、基于Canvas、响应式图表绘制工具库。

  (2)参考DEMO,编写示例程序

       new Chart(canvasId, {

             type: 'bar',             //图表的类型,共8中    

              data: {  },                     //图表必需的数据

              options: {  }          //可选项

       });

  (3)查看API Document,实现自己的项目需求

       参考手册中的示例代码

 

 

 

课后练习:

1)     使用Canvas绘制一个随机改变的验证码图片

      

var str = 'ABCDEFGHJKLMNPQRSTWXY3456789';

var char = str[ 0~字符串长度间的随机数 ]; 

 要求:

         画布背景颜色随机(浅色)  ctx.fillRect()

文字内容随机、大小随机,颜色随机(深色)、旋转角度随机。

         5条随机干扰线(深色),处于文字上方。

         100个杂色点(半径为1为圆),处于文字上方。

 

2.仿网易云音乐的播放界面

 

  点击播放按钮,碟片开始旋转,背景音乐开始播放;

再次点击播放按钮,碟片停止旋转,背景音乐停止播放。

 

转载于:https://www.cnblogs.com/Hale-Proh/p/7199829.html

标签
#javascript #网络 #游戏 #ViewUI
确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
dgn64458
关注 关注
  • 0
    点赞
  • 踩
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
HTML5 + CSS3 基础知识梳理
weixin_57334661的博客
05-05 2147
视频播放器需要的属性controls显示或隐藏用户控制界面autoplay媒体是否自动播放loop媒体是否循环播放pause媒体是否暂停(只读属性)ended媒体是否播放完毕(只读属性)当前的播放进度duration媒体播放总时间volume0.0到1.0的音量相对值muted是否静音3.2播放器需要的方法:视频播放器用到的方法play()媒体播放Pause()媒体暂停时间更新Canplay()可以播放。
参与评论 您还未登录,请先 登录 后发表或查看评论
SVG实现拖动贝塞尔曲线做成了Photoshop钢笔工具效果
04-27
----------------- 转载注明出处, 环境是svg6.0插件 用最简单的做法实现看是很难的东西. 运行HTML即可 -----------------
HTML5Canvas实现简易画图工具(铅笔,直线,矩形,圆,文本框,橡皮擦等)
m0_60014407的博客
08-03 2726
初学Canvas,用canvas做了简单的画图工具体会并熟悉了一下大致的实现方案。
html5 canvas实现的绘图工具自由绘制图形画板特效代码
03-20
这是一款基于html5 canvas实现的绘图工具自由绘制图形画板源码,具备画板基本的线、矩形、铅笔、圆、五角星等绘图工具,及颜色与边框的填充,橡皮擦等功能。绘图完毕还具有保存图片的功能。是一款非常实用的经典html5画板工具源码。建议使用支持html5与css3效
HTML5 使用canvas实现画板功能(画笔颜色切换、粗细调整、清除图像)
yuhaowen的博客
03-30 7372
标签定义图形,比如图表和其他图像,您必须使用脚本来绘制图形。 在画布上(Canvas)画一个红色矩形,渐变矩形,彩色矩形,和一些彩色的文字。 HTML5 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成. 标签只是图形容器,您必须使用脚本来绘制图形。 实现画笔颜色切换 画笔粗细调整 清除图像 绘制矩形 绘制圆形 创建一个画布(Canvas) <canvas id="canvas" width="900" height=500" style="border: 2px #5.
html5 (canvas) +css+js 实现画图工具
yolanda的数据分析进阶记录
01-30 9167
效果图:js:var canvas= document.getElementById("cans"); var cxt=canvas.getContext("2d"); var startX,startY,endX,endY; var data; var shapes = new Array(); var mousedown,mouseout; var shape=1; // 创建图形对象,保存该...
基于 H5 的画图工具
wm1634208243的博客
07-23 395
本文结合计算机图形学中基本图形的扫描转换和图形变换原理与算法,如一维线框图 形直线、圆、椭圆的扫描转换问题,二维多边形的填充,字符的表示,图形的裁剪,由简 单图形生成复杂图形,二维三维图形的平移、旋转、变比、对称等,在 HTML 中的 canvas 实现出来。(2) 画图:根据用户选择的画图工具,在画布上通过鼠标点击移动,绘制点、直线、 折线、直角线、多边形、圆、椭圆、圆弧、椭圆弧、任意曲线、圆角矩形、矩形 及其字符;完整资料进入【数字空间】查看——baidu搜索"writebug"2.1 主要功能描述。
[js高手之路]html5 canvas动画教程 - 自己动手做一个类似windows的画图软件
weixin_34101229的博客
10-17 278
这个绘图工具,我还没有做完,不过已经实现了总架构,以及常见的简易图形绘制功能: 1,可以绘制直线,圆,矩形,正多边形【已完成】 2,填充颜色和描边颜色的选择【已完成】 3,描边和填充功能的选择【已完成】 后续版本: 橡皮擦,坐标系,线形设置,箭头,其他流程图形,裁剪与调整图形。。。。。 终极目标: 流程绘制软件 我是之前看见一位朋友在我的博客中留言说: 非常感谢这个朋友,今天...
HTML5和CSS3的进阶_HTML5和CSS3的新增特性
2301_80636070的博客
11-11 1131
目录HTML5的新特性1. HTML5 的新特性1.1 HTML5 新增的语义化标签1.2 HTML5 新增的多媒体标签1. 视频 2. 音频 3. 多媒体标签总结1.3 HTML5 新增的 input 类型1.4 HTML5 新增的表单属性required 必须输入信息,不能为空;重点:placeholder 提示文本autofocus:每次刷新都会自动获得光标multiple 可以选择多文件提交2. CSS3 的新特性2.1 CSS3 的现状2.2 属性选择器2.3 结构伪类选择器nth-child
HTML5&CSS3新特性
weixin_52972575的博客
05-05 8871
一.HTML5新特性 HTML5新特性针对于以前的不足,增加了一些新的标签,新的表单,新的表单属性等。 1.新增语义化标签 新增的带有语义化的标签 二.CSS3新特性
用HTML5+CSS3绘制HTML5的图标
Mr_jianghanlin的博客
03-05 521
用HTML5+CSS3绘制HTML5的图标 首先看一下最终的效果图: 然后对上述图片进行拆分分析: HTML5的实现步骤: 图1:定位出整个页面的背景区域“bg”,并实现背景光束。 图2:定义logo样式,并画出盾牌的左半边。 图3:画出盾牌的右半边。 图4:画出浅橘色区域。 图5:画出“5”的左半边。 图6:画出“5”的右半边。 图7:用色块遮盖多余的部分。 图8:在盾牌上方添加“HTML”图片...
Html5、Css3
最新发布
fjv91的博客
03-05 991
设置浮动的图片,可以实现文字环绕图片。设置了浮动的块级元素可以排列在同一行。设置了浮动的行内元素可以设置宽高。浮动造成的影响:使盒子脱离文档流,如果父级盒子没有设置高度,需要被子盒子撑开,那么这时候父级盒子的高度就塌陷了,同时也会造成后面的盒子布局受到影响。
HTML5与CSS3总结
hu0708的博客
08-16 2604
HTML5与css3
12 为何使用Html5+CSS3
热门推荐
乡下工程师
10-12 1万+
我看点这方面的资料,是为了做手机应用网站(有三个方案,这个是备用方案),可以开发响应式网站,可以脱离开发平台进行跨平台。
HTML5和CSS3
weixin_58361149的博客
11-26 1461
HTML5和CSS3部分知识内容
HTML5+css3课后习题【一】
缘友一世的博客
11-04 1万+
因为静态网页的访问速度快,所以现在互联网上的所有网站都是静态网页组成的。(✖️)大多数网页是动静混合模式。“HTTP”是一种详细规定了浏览器和万维网服务器之间互相通信的规则。(✔️ )在Web标准中,表现是指网页展示给访问者的外在样式。( ✔️)在网页中,层叠样式表指的是JavaScript。(✖️ )CSS所有的浏览器对同一个CSS样式的解析都相同,因此页面在不同浏览器下的显示效果完全一样。( ✖️)结果不一样。
HTML5、CSS3总结
一盒婷酱的博客
06-09 955
@TOC 一、HTML5 1.1 HTML5的简介 HTML5 是 W3C 与 WHATWG 合作的结果,HTML5 将成为 HTML、XHTML 以及 HTML DOM 的新标准。 HTML5的规则 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立于设备 开发进程应对公众透明 HTML5中的新特性 用于绘画的 canvas 元素 用于媒介回放的 video 和 audi
HTML5+CSS3
Burgdan的博客
03-15 835
Html5介绍: Html -----xhtml版本---w3c和whatwg(web应用技术工作组) ----html5 Html5广义 =html5+css3+javascript+api Html5的特点: 代码更加简洁,标签具有语义化,新增了一些属性,代码更加的宽松。 Html5的发展史: 2004提出构想-----2008模拟第一份草案-----201
dgn64458

博客等级

码龄12年
0
原创
0
点赞
2
收藏
0
粉丝
关注
私信

热门文章

  • HTML 5 371
  • HTML5 5 288
  • HTML5 6 281
  • HTML5 3 278
  • 概念整理2 272
上一篇:
HTML5 2
下一篇:
HTML5 5

大家在看

  • 百度旋转验证码模型更新及识别代码 1727
  • MCP协议开发实战:从零搭建AI Agent工具链
  • 散货码头基础设施建设:技术预调方案与落地实践 161
  • 直接领!英语学习资料3500词词性变化 353
  • 为什么懂技术的人,反而当不了“好”管理? 578

最新文章

  • HTML5 8
  • HTML5 7
  • HTML5 6
2017年81篇
C知道

· AI 阅读助手

目录

展开全部

收起

C知道

· AI 阅读助手

目录

展开全部

收起

上一篇:
HTML5 2
下一篇:
HTML5 5

最新文章

  • HTML5 8
  • HTML5 7
  • HTML5 6
2017年81篇

目录

评论
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值