Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 1670|回复: 0

HTML 5 画布

  [复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-8-11 21:41:00 | 显示全部楼层 |阅读模式
    canvas 元素用于在网页上绘制图形






    什么是 Canvas?
    HTML5 的 canvas 元素使用 javaScript 在网页上绘制图像。
    画布是一个矩形区域,您可以控制其每一像素。
    canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。






    创建 Canvas 元素
    向 HTML5 页面添加 canvas 元素。
    规定元素的 id、宽度和高度:
    1. <canvas id="myCanvas" width="200" height="100"></canvas>
    复制代码







    通过 JavaScript 来绘制

    canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成:
    1. <script type="text/javascript">
    2. var c=document.getElementById("myCanvas");
    3. var cxt=c.getContext("2d");
    4. cxt.fillStyle="#FF0000";
    5. cxt.fillRect(0,0,150,75);
    6. </script>
    复制代码


    JavaScript 使用 id 来寻找 canvas 元素:
    1. var c=document.getElementById("myCanvas");
    复制代码


    然后,创建 context 对象:
    1. var cxt=c.getContext("2d");
    复制代码


    getContext("2d") 对象是内建的 HTML5 对象,拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。
    下面的两行代码绘制一个红色的矩形:
    1. cxt.fillStyle="#FF0000";
    2. cxt.fillRect(0,0,150,75);
    复制代码


    fillStyle 方法将其染成红色,fillRect 方法规定了形状、位置和尺寸。






    理解坐标
    上面的 fillRect 方法拥有参数 (0,0,150,75)。
    意思是:在画布上绘制 150x75 的矩形,从左上角开始 (0,0)。
    如下图所示,画布的 X 和 Y 坐标用于在画布上对绘画进行定位。







    更多 Canvas 实例
    下面的在 canvas 元素上进行绘画的更多实例:
    实例 - 线条
    通过指定从何处开始,在何处结束,来绘制一条线:



    JavaScript 代码:
    1. <script type="text/javascript">
    2. var c=document.getElementById("myCanvas");
    3. var cxt=c.getContext("2d");
    4. cxt.moveTo(10,10);
    5. cxt.lineTo(150,50);
    6. cxt.lineTo(10,50);
    7. cxt.stroke();
    8. </script>
    复制代码


    canvas 元素:
    1. <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
    2. Your browser does not support the canvas element.
    3. </canvas>
    复制代码


    实例 - 圆形
    通过规定尺寸、颜色和位置,来绘制一个圆:



    JavaScript 代码:
    1. <script type="text/javascript">
    2. var c=document.getElementById("myCanvas");
    3. var cxt=c.getContext("2d");
    4. cxt.fillStyle="#FF0000";
    5. cxt.beginPath();
    6. cxt.arc(70,18,15,0,Math.PI*2,true);
    7. cxt.closePath();
    8. cxt.fill();
    9. </script>
    复制代码


    canvas 元素:
    1. <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
    2. Your browser does not support the canvas element.
    3. </canvas>
    复制代码


    实例 - 渐变
    使用您指定的颜色来绘制渐变背景:



    JavaScript 代码:
    1. <script type="text/javascript">
    2. var c=document.getElementById("myCanvas");
    3. var cxt=c.getContext("2d");
    4. var grd=cxt.createLinearGradient(0,0,175,50);
    5. grd.addColorStop(0,"#FF0000");
    6. grd.addColorStop(1,"#00FF00");
    7. cxt.fillStyle=grd;
    8. cxt.fillRect(0,0,175,50);
    9. </script>
    复制代码


    canvas 元素:
    1. <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
    2. Your browser does not support the canvas element.
    3. </canvas>
    复制代码


    实例 - 图像
    把一幅图像放置到画布上:



    JavaScript 代码:
    1. <script type="text/javascript">
    2. var c=document.getElementById("myCanvas");
    3. var cxt=c.getContext("2d");
    4. var img=new Image()
    5. img.src="flower.png"
    6. cxt.drawImage(img,0,0);
    7. </script>
    复制代码


    canvas 元素:
    1. <canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
    2. Your browser does not support the canvas element.
    3. </canvas>
    复制代码
    回复

    使用道具 举报

    该用户从未签到

    发表于 2011-8-11 21:47:33 | 显示全部楼层
    好东东
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2011-9-26 14:33:24 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-5-9 19:32:30 | 显示全部楼层
    支持一下!!呵呵
    悠哉网www.sadnook.com
    中国讲座在线www.douya5.cn
    尚生活www.027up.com
    悠哉教育www.yoozai.com
    武汉数据www.whdata.net
    要爱你www.1l0.cn








    悠哉网www.sadnook.com
    中国讲座在线www.douya5.cn
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-5-17 20:22:39 | 显示全部楼层
    好东西!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-5-17 20:22:59 | 显示全部楼层
    强烈顶一下!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2012-6-16 12:37:20 | 显示全部楼层
    不错,顶的人不多啊,快点继续








    买奶牛http://blog.sina.com.cn/u/2790203672
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-8 13:23 , Processed in 0.331318 second(s), 37 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表