HTML5初学笔记

今天学习了下HTML5的基本知识,用画笔在画布上画了几个东西,效果如图,相关代码如下,注意点总结在末尾;

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>

<body>
<canvas id="can1" width="500px"  height="500px"  style="border:1px solid red">
</canvas>
<script type="text/javascript">
    //准备工作
    //得到画布
    var  canvas1=document.getElementById("can1");
    //得到上下文引用对象,你可以理解成画笔
    var cxt=canvas1.getContext("2d");

    //画出一个直线
    cxt.moveTo(30,10);//设置点的位置
    cxt.lineTo(30,90);//设置第二个点的位置
    cxt.stroke();//将这两个点连起来,画出直线

    /**
    *画出一个填充的三角形
    */
    cxt.beginPath();//开始新的起点
    cxt.moveTo(50,10);//设置点的位置
    cxt.lineTo(50,90);//设置第二个点的位置
    cxt.lineTo(80,90);//设置第三个点的位置
    cxt.closePath();//结束一个画的动作,闭合这三个点
    //cxt.fill();//实体填充
    cxt.stroke();//空心填充

    //stroke划线,fill就是填充
    //画出一个矩形,四个点的含义,前两个是左上角的点,后面两个分别是宽和高
    //strokeRect(x,y,width,height)
    cxt.strokeRect(100,10,30,80);

    //画出一个填充的矩形,其颜色是蓝色
    cxt.fillStyle="#00ffff";
    cxt.fillRect(150,10,30,80);

    //画出一个圆形arc
    //六个参数arc(x,y,redius,startAngle,endAngle,counterclockwise)
    cxt.beginPath();//开始新的起点
    //true代表逆时针,false代表顺时针,其实这个无所谓的
    cxt.arc(220,30,20,0,360,false);
    cxt.closePath();//结束一个画的动作
    cxt.stroke();

    //画出一个填充的圆形arc
    //六个参数arc(x,y,redius,startAngle,endAngle,counterclockwise)
    cxt.fillStyle="#ff0000";//红色
    cxt.beginPath();//开始新的起点
    //true代表逆时针,false代表顺时针,其实这个无所谓的
    cxt.arc(280,30,20,0,360,false);
    cxt.closePath();//结束一个画的动作
    cxt.fill();

    //画一个图片出来,步骤如下
    //1、创建image对象
    var img1=new Image();
    //2、指定是哪个图片
    img1.src="1.png";
    //3、加载完毕后,再绘制图片
    img1.onload=function(){
        cxt.drawImage(img1,30,100,100,90);
    }

</script>
</body>
</html>

先定义了一个画布,在script中获取画笔,用画笔画你想画的东西

注意点:

1、除了线和矩形不需要beginPath(),和closePath()其他都需要,不然会出一些莫名奇妙的问题

2、stroke划线,fill就是填充

3、颜色的设置要在beginPath()之前,否则不起作用;

4、.画圆形的时候逆时针和顺时针有时候不太好用,计算设置了0度到360.顺时针和逆时针却不一样,可以正难则反试试;

5、canvas是画布,getcontext()是画笔;

时间: 2024-10-06 19:23:52

HTML5初学笔记的相关文章

html5学习笔记(3)--主题结构元素-1

html5学习笔记(3)--主题结构元素-1 Article元素 以下为对应代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <article> <header> <h1>极客学院</h

HTML5学习笔记(二)——表单1

表单一直是网页必不可少的一部分,一直以来,表单的作用被无限扩展,发展出了诸多新奇的用法,老版的HTML只支持很少的一部分常用表单,许多的新表单都需要借助CSS与JavaScript语言来进行构建,现在HTML5来了,她带来了新的表单,这些强大的表单项,可以省去一大块复杂的JavaScript代码,很值得去学习. 而且在新的表单里面,不再像以前每个表单都必须位于<form></form>之内,只要在<form></form>内定义一个id,然后在网页任何位置都

HTML5 程序设计笔记(一)

HTML5 概述 1.html5 发展史 1993年html首次以因特网草案形式发布. 20世纪90年代,html大幅发展,从2.0版,到3.2版和4.0版.最后到1999年的4.01版. 伴随html发展,W3C掌握了对html规范的控制权. 快速发布四个版本后,在业界人为html已经末路的同时,对web标准焦点开始转移到XML和XHTML上.HTML被放在次要位置. 致力于将web平台提升到一个新高度,一小组人在2004年成立WHATWG,他们创立了HTML5规范,同时开始转对web应用开发

Html5学习笔记1 元素 标签 属性

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>HTML5学习笔记</title> </head> <body bgcolor="#90ee90"> 1.Html5的元素<br/><br/> 元素指的是从開始标签到结束标签的全部代码<

初学笔记(C#事件)

1.声明事件      EventHandler是一个预定义的委托,它定义了一个无返回值的方法.在 .Net Fromwork中,他的格式: public  delegate  void EventHandler (Object  sender, EvenArgs  e) 其中sender的类型为Object,表示时间发布者本身,e用来传递事件的相关信息,数据类型为EvenArgs及其派生类. 标准的EvenArgs并不包含任何事件数据, 因此EventHandler专用于表示不生成数据的事件的

lisp初学笔记

学习任何知识,都不能仅仅把它们当做知识,更重要的是要把它们在实际编程实践中应用起来,持有这样的学习观念才不至于让你变成学究式的活字典,对于程序员来说这一点尤其重要,你学习的任何语言知识,一定要在实际的程序编写过程中不断练习.不停实践,纸上得来终觉浅,绝知此事须躬行. LispBox 实际上是把 Emacs.Slime.Clozure CL 以及 QuickLisp 集成到一起,使用 LispBox 做开发环境就相当于选择了 Emacs 作为编辑器.选择 Slime 作为交互界面,那么一定要熟悉

flex入门--初学笔记1

环境:flashBuilder + eclipse 4.2 基本控件: 1 <mx:Script> 2 <![CDATA[ 3 import mx.controls.Alert; 4 public function showMsg(msg:String):void{ 5 mx.controls.Alert.show(msg); 6 } 7 ]]> 8 </mx:Script> 9 <mx:Panel title="常用控件" width=&qu

HTML5 程序设计笔记(二)

Canvas API 1.HTML5 Canvas 概述 1.1 历史 Canvas的概念最初是由苹果公司提出的,用于在Mac OS X WebKit中创建控制板部件(dashboard widget).在Canvas出现之前,开发人员若要在浏览器中使用绘图API,只能使用Adobe的Flash和SVG插件,或者只有IE才支持的VML,以及其他一些稀奇古怪的javascript技巧. SVG和Canvas对比 "Canvas本质上是一个位图画布,其上绘制的图形是不可缩放的,不能像SVG图像那样可

AS3 初学笔记 actionscript-之变量

变量 变量可用来存储程序中使用的值.要声明变量,必须将 var 语句和变量名结合使用.在 ActionScript 2.0 中,只有当您使用类 型注释时,才需要使用 var 语句.在 ActionScript 3.0 中,总是需要使用 var 语句.例如,下面的 ActionScript 行声明一个名 为 i 的变量: var i; 如果在声明变量时省略了 var 语句,则在严格模式下会出现编译器错误,在标准模式下会出现运行时错误.例如,如果以前未 定义变量 i,则下面的代码行将产生错误: i;