热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何用html5做图形,如何使用HTML5的Canvas图形元素绘制图形

HTML5是目前HTML的最新标准。在笔者写这篇文章时,HTML5仍在积极的发展。HTML5除了提供新的标签信息外,同时还包含了新的应用程序编程接口(A

HTML5是目前HTML的最新标准。在笔者写这篇文章时,HTML5仍在积极的发展。HTML5除了提供新的标签信息外,同时还包含了新的应用程序编程接口(API),这样可以使我们能够在网页上提供更多丰富的多媒体和互动功能,而无需使用专有的插件。除了这些万维网联盟还公布了其他的相关技术,比如地理位置定位,脱机存储,档案管理等等。

在HTML5推出后,浏览器将会更像是一个操作系统,事实上谷歌的Chrome OS就是基于Chrome浏览器上运行各种网络应用程序的操作系统。使用HTML5和其他相关技术,我们就可以构建应用程序,模糊传统的桌面与WEB之间的分界线。

HTML5中的Canvas图形元素

在这篇文章中笔者将对HTML5中新的新的canvas元素做一个简单的描述。canvas可以让我们能够在浏览器上使用脚本绘制图形。笔者将会通过使用canvas元素教大家如何在浏览器上绘制一个简单的三角形。在我们开始之前,你必须知道目前HTML5和其他相关的技术只能被目前最新版本的浏览器所兼容。你需要使用最新版本的火狐,Chrome,Safari 浏览器或者ie9。

什么是Canvas

canvas是html5的一个新的标签,在页面中定义该标签的代码如下

HTML5 – Hello Triangle

这一段短短的HTML5代码还没有做什么事情。接着我们将在画布上绘制和操纵元素。

画布的设置

画布上我们需要使用坐标系统。在画布的左上角我们定义为坐标(0,0),X坐标随着画布的宽度不断增加,Y轴随着画布的高度不断增加。基于我们本文的例子,X轴所从(0,0)到(800,0)的线,Y轴是从(0,0)到(0,600)的线。具体如下图所示。

为了能够进入画布绘图,我们需要先完成他的背景。具体我们可以使用下面的Javascript代码。

var myCanvas = document.getElementById(“canvas”);

var ctx = myCanvas.getContext(“2d”);

现在ctx就持有canvas元素的2D背景,可以在二维空间中作图。我们将在上面绘制三角形。当然你会想我们可以不可以使用3D背景呢?答案是目前还不行,因为目前还没有一个统一标准的3D背景,同时浏览器的支持也很有限。

画第一条直线

在我们画第一条直线的时候我们需要知道什么?首先我们需要知道两个点,其实坐标(X1,Y1)和结束坐标(X2,Y2)。画线我们可以使用以下的代码。

function drawLine(ctx, color, x1, y1, x2, y2){

ctx.beginPath();

ctx.strokeStyle=color;

ctx.moveTo(x1, y1);

ctx.lineTo(x2, y2);

ctx.stroke();

ctx.closePath();

}

这些代码是在2D的背景下。并使用制定的颜色画线。使用MOVETO()做为起点,lineTo()为终点绘制图线。我们可以使用这些代码绘制三角形的边缘线。

绘制三角形

既然我们有画线的代码,那么绘制三角形就很容易了。这里有绘制三条线的方法。

function drawTriangle(ctx, color, x1, y1, x2, y2, x3, y3){

drawLine(ctx, color, x1, y1, x2, y2);

drawLine(ctx, color, x2, y2, x3, y3);

drawLine(ctx, color, x3, y3, x1, y1);

}

接着我们就需要将这些线放置在一起,代码如下:

function drawOnCanvas(){

var myCanvas = document.getElementById(“canvas”);

var ctx = myCanvas.getContext(“2d”);

drawTriangle(ctx, “#FF0000″, 10, 10, 10, 100, 100, 100);

}

下一步我们需要在标签上做“onload”事件。

最后我们保存为HTML文件,然后就可以在浏览器中查看到以下的结果。

总结:

本文是对HTML5的canvas元素的一个很简短的简介。HTML5中还有许多元素我们没有继续探索与了解。我们需要不断的学习与了解,希望本文对于大家了解HTML5有所帮助。本文由九牧王官方旗舰店 原创,转载请保留链接,谢谢!

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!



推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • PHP中的单例模式与静态变量的区别及使用方法
    本文介绍了PHP中的单例模式与静态变量的区别及使用方法。在PHP中,静态变量的存活周期仅仅是每次PHP的会话周期,与Java、C++不同。静态变量在PHP中的作用域仅限于当前文件内,在函数或类中可以传递变量。本文还通过示例代码解释了静态变量在函数和类中的使用方法,并说明了静态变量的生命周期与结构体的生命周期相关联。同时,本文还介绍了静态变量在类中的使用方法,并通过示例代码展示了如何在类中使用静态变量。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
author-avatar
饱和深潜者_463
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有