画布Canvas--2

  • 示例3:创建画布并画圆
    • 代码
    • 实现效果
    • 结构分析
    • 代码块分析
  • 示例4:创建画布并给它部分填色
    • 代码
    • 实现效果
    • 结构分析
    • 代码块分析
  • 示例5:创建画布并设置背景图像
    • 代码
    • 实现效果
    • 结构分析
    • 代码块分析
    • 总结

示例3:创建画布并画圆

代码

<!DOCTYPE HTML>
<html>
<body><canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">Your Browser Does Not Support the Canvas Element.</canvas><script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");cxt.fillStyle="#FF0000";cxt.beginPath();cxt.arc(70,18,15,0,Math.PI*2,true);cxt.closePath();cxt.fill();</script>
</body>
</html>

实现效果

1.创建一个矩形画布
2.在画布中画一个圆

结构分析

涉及对象
矩形画布
画一个圆
涉及函数
cxt.beginPath();
cxt.arc(70,18,15,0,Math.PI*2,true);
cxt.closePath();
cxt.fill();
逻辑步骤
1.生成一个画布canvas对象: canvas
2.画布自带可以被画的属性: cxt
3.创建画布对象后自动执行script内容 : script

代码块分析

1.生成画布对象:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your Browser Does Not Support the Canvas Element.
</canvas>

id,方便之后函数对对象进行操作或者读取对应的信息

2.使用script画一个圆

<script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");cxt.fillStyle="#FF0000";cxt.beginPath();cxt.arc(70,18,15,0,Math.PI*2,true);cxt.closePath();cxt.fill();
</script>

生成画布对象后,会自动执行script中的内容,前两个语句是获取操作的目标,后五句开始对目标进行操作:画一个圆后,再对圆内进行颜色填充。

示例4:创建画布并给它部分填色

代码

<!DOCTYPE HTML>
<html>
<body><canvas Id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">Your Browser Does Not Support the Canvas Element.</canvas><script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");var grd=cxt.createLinearGradient(0,0,175,50);grd.addColorStop(0,"#FF0000");grd.addColorStop(1,"#00FF00");cxt.fillStyle=grd;cxt.fillRect(0,0,175,50);</script>
</body>
</html>

实现效果

结构分析

涉及对象
画布
涉及函数
var grd=cxt.createLinearGradient(0,0,175,50);
grd.addColorStop(0,"#FF0000");
grd.addColorStop(1,"#00FF00");
cxt.fillStyle=grd;
cxt.fillRect(0,0,175,50);
逻辑步骤
1.生成一个画布canvas对象: canvas
2.画布自带可以被填充颜色的属性 : fill
3.创建画布对象后自动执行script内容 : script

代码块分析

1.创建canvas

<canvas Id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your Browser Does Not Support the Canvas Element.
</canvas>

只需要给出id,定义形状。

2.使用script填充颜色

<script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");var grd=cxt.createLinearGradient(0,0,175,50);grd.addColorStop(0,"#FF0000");grd.addColorStop(1,"#00FF00");cxt.fillStyle=grd;cxt.fillRect(0,0,175,50);
</script>

前两个语句主要是获取操作的对象,以及定义之后用script中的哪些函数对这个对象进行操作。
var grd=cxt.createLinearGradient(0,0,175,50); 和 cxt.fillRect(0,0,175,50); 共同决定了填充的结果,前部分决定渐变的范围,后部分决定填充的范围,如果范围1小于范围2,那么渐变色填充只会发生在范围1中,其余部分变成单一颜色填充。
grd开头的语句主要决定渐变色的颜色,cxt开头的语句定义了填充颜色的操作。

示例5:创建画布并设置背景图像

代码

<!DOCTYPE HTML>
<html>
<body><canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">Your Browser Does Not Support the Canvas Element.</canvas><script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");var img=new Image() img.src="/i/eg_flower.png"cxt.drawImage(img,0,0);</script>
</body>
</html>

实现效果

1.创建一个矩形画布
2.更改背景

结构分析

涉及对象
矩形画布
背景图片
涉及函数
var img=new Image()
img.src="/i/eg_flower.png"
cxt.drawImage(img,0,0);
逻辑步骤
1.生成一个画布canvas对象: canvas
2.画布自带可以被画的属性: cxt
3.创建画布对象后自动执行script内容 : script

代码块分析

1.生成画布对象:

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your Browser Does Not Support the Canvas Element.
</canvas>

id,方便之后函数对对象进行操作或者读取对应的信息

2.使用script插入一个背景图片

<script type="text/javascript">var c=document.getElementById("myCanvas");var cxt=c.getContext("2d");var img=new Image() img.src="/i/eg_flower.png"cxt.drawImage(img,0,0);
</script>

生成画布对象后,会自动执行script中的内容,前两个语句是获取操作的目标,后五句开始对目标进行操作:定义一个img变量,注意使用时涉及img变量的语句是否要加分号(判断的标准是?)。最后再使用一个drawImage函数定义图像的位置。

总结

至此,canvas告一段落。以后分析都采用代码 、实现效果 、结构分析 、代码块分析的模式。

画布canvas的使用2相关推荐

  1. 刮刮乐html5效果擦除,利用HTML5的画布Canvas实现刮刮卡效果

    先给大家展示效果: 你玩过刮刮卡么?一不小心可以中奖的那种.今天我给大家分享一个基于HTML5技术实现的刮刮卡效果,在PC上只需按住鼠标,在手机上你只需按住指头,轻轻刮去图层就可以模拟真实的刮奖效果. ...

  2. HTML5画布(CANVAS)速查简表

    >HTML5画布(Canvas)元素 <canvas id="myCanvas" width="500" height="300" ...

  3. tkinter笔记:画布canvas

    1 整体框架 import tkinter as tkwindow = tk.Tk() #创建窗口window.title('my window') #窗口标题window.geometry('500 ...

  4. html5画布作品,10个会让你惊叹不已的HTML5画布(CANVAS)技术应用演

    下面的这是10个HTML5画布(canvas)技术效果演示一定会让你惊叹不已.当然,也许你也会认为,过去在老式浏览器中用flash技术也能实现这样的效果.但是,下面的这些演示只使用了现代浏览器里自带技 ...

  5. 【Android】自定义View、画布Canvas与画笔Paint

    安卓自定义View其实很简单.这个View可以像<[Android]利用Java代码布局,按钮添加点击事件>(点击打开链接)一样,利用Java代码生成一系列的组件.也可以配合画布Canva ...

  6. Android 画布Canvas之控件连线操作

    一.需求: 1.在画布中的控件A长按能进行控件的连接,只有在控件B范围内抬起控件之间的连线才能连接成功: 2.当控件连线成功后,拖动控件AB之间的连线随着控件的拖动随之变化: 3.控件连线在屏幕上随着 ...

  7. [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法...

    [OHIF-Viewers]医疗数字阅片-医学影像-querySelector() 选择器语法-将画布(canvas)图像保存成本地图片的方法 将画布(canvas)图像保存成本地图片的方法 使用HT ...

  8. html5好看画布,10个会让你惊叹不已的HTML5画布(CANVAS)技术应用演

    下面的这是10个HTML5画布(canvas)技术效果演示一定会让你惊叹不已.当然,也许你也会认为,过去在老式浏览器中用flash技术也能实现这样的效果.但是,下面的这些演示只使用了现代浏览器里自带技 ...

  9. html画布设计,10个会让你惊叹不已的HTML5画布(canvas)技术应用

    随着老式浏览器(IE6)的逐渐淘汰,现代浏览器(火狐浏览器,谷歌浏览器,Opera,Safari)走向主流,越来越多的HTML5和CSS3技术开始出现在各种网站上.这些最新的网页技术究竟能给我们今后的 ...

  10. 未来技术 html5 app,未来web浏览技术提前体验:10个会让你惊叹不已的HTML5画布(canvas)技术应用演示...

    随着老式浏览器(IE6,IE8)的逐渐淘汰,现代浏览器(火狐浏览器,谷歌浏览器,Opera,Safari)走向主流,越来越多的HTML5和CSS3技术开始出现在各种网站上.这些最新的网页技术究竟能给我 ...

最新文章

  1. ios微信登录不上服务器,iOS微信授权登录
  2. harmonyos能装app吗,真机运行HarmonyOS应用APP
  3. leetcode 215.数组中的第K个最大元素
  4. 数据流程图顶层一层二层_只需三个公式,三阶魔方超简单入门图文教程5:完全复原第二层...
  5. 妙到巅峰的8个简洁数学证明(文科生都能看懂),隐隐触摸到一丝只属于神的智慧气息……...
  6. iOS软件开发架构理解
  7. 搭建高可用的分布式hadoop2.5.2集群  HDFS HA
  8. python 随机数_Python中的随机数
  9. Hustoj_liveCD问题总结
  10. Please either set ERLANG_HOME to point to your Erlang installation or place
  11. 「原创」如何快速获取银行、联行号的数据?
  12. 计量笔记(二) | OLS估计量性质
  13. 南开大学计算机学院博士毕业要求,南京大学博士研究生申请学位科研成果基本要求...
  14. CANopen协议解读
  15. 周志华 机器学习初步 线性模型
  16. 祖国(或以梦为马) 海子
  17. AM335x启动流程(BootRom- MLO-的Uboot)
  18. 关于Python控制打印机如何横向打印EXEL
  19. 六、系统架构 - 高可用架构设计
  20. NV显卡 终于被我查到了

热门文章

  1. git回滚 reset 之后如何恢复到之前状态
  2. 数学建模模型学习(1)--层次分析法
  3. 人工智能AI - 以图搜图产品
  4. Excel取消合并自动填充
  5. 重新认识java(零) --- 不积跬步无以至千里
  6. Dynamics 365(online) V9.0 new features for developers(二:JavaScript Web 资源依赖性)
  7. 酷我音乐linux版本,在Linux下可用Wine安装和运行酷我音乐、Microsoft 365家庭版/个人版...
  8. 成都天府软件园,一个程序员跳楼了……
  9. 【2022-09-14】米哈游秋招笔试三道编程题
  10. SP服务商收益到底有多大?