HTML5读书笔记之三:Canvas基础知识

<!doctype html>
 <head>
  <title>Canvas Test</title>
  <meta charset="UTF-8">
  <link href="./css/canvas.css" rel="stylesheet" type="text/css">
  <script type="text/javascript" src="./jquery/jquery-1.11.1.min.js">
  </script>

  <script type="text/javascript">
	$(document).ready(function(){
		var canvas = $("#myCanvas");
		var context = canvas.get(0).getContext("2d");
		/************************************绘制正方形*********************************************************************************************

		context.fillRect(40, 40, 100, 100);		//绘制实心正方形	context.fillRect(x, y, width, height);
		context.strokeRect(40, 40, 100, 100);		//绘制空心正方形	context.strokeRect(x, y, width, height);

		*************************************绘制线条***********************************************************************************************

		context.beginPath();			//开始路径
		context.moveTo(40, 40);			//设置路径原点
		context.lineTo(340, 340);		//设置路径终点
		context.closePath();			//结束路径
		context.stroke();				//开始绘制

		*************************************绘制圆形***********************************************************************************************

		context.beginPath();	//开始路径
		context.arc(230, 90, 50, 0, Math.PI*2, false);	//绘制一个圆	context.arc(x, y, radius, startAngle, endAngle, anticlockwise);
		context.closePath();	//结束路径
		context.fillStyle = "rgb(255, 0, 0)";			//颜色
		context.fill();			//填充路径

		**************************************绘制风格**********************************************************************************************

		context.lineWidth = 5;			//家粗线条
		context.beginPath();			//开始路径
		context.moveTo(40, 40);			//设置路径原点
		context.lineTo(40, 340);		//设置路径终点
		context.closePath();			//结束路径
		context.stroke();				//开始绘制

		context.strokeRect(200, 40, 100, 100);

		context.lineWidth = 10;			//家粗线条
		context.beginPath();			//开始路径
		context.moveTo(80, 40);			//设置路径原点
		context.lineTo(80, 340);		//设置路径终点
		context.closePath();			//结束路径
		context.stroke();				//开始绘制

		context.strokeRect(400, 40, 100, 100);

		***************************************绘制文字***********************************************************************************************

		var text = "Hello World!";
		context.font = "italic 60px serif";
		context.strokeText(text, 40, 100);

		***************************************擦除Canvas*********************************************************************************************

		context.fillRect(40, 40, 100, 100);		//绘制实心正方形	context.fillRect(x, y, width, height);
		context.clearRect(40, 40, 50, 50);		//擦除Canvas
		context.clearRect(0, 0, canvas.width(), canvas.height());	//擦除全部,但是重新绘制时,图形的一些属性不会变

		***************************************重置Canvas*********************************************************************************************

		context.fillRect(40, 40, 100, 100);		//绘制实心正方形	context.fillRect(x, y, width, height);
		canvas.attr("width", canvas.width());	//重置canvas的高和宽,绘制图形之前设置的属性(样式,颜色)也一并清除
		canvas.attr("height", canvas.height());	

		***************************************Canvas填满浏览器*********************************************************************************************/
		$(window).resize(resizeCanvas);		//调用resize方法,当调整窗口大小的时候就会触发
											//当调整窗口时仍完美的填满整个窗口,而不会出现滚动条或者出现白框
		function resizeCanvas(){
			canvas.attr("width", $(window).get(0).innerWidth);		//$(window).get(0).innerWidth 使用window浏览器对象和jQuery方法获取窗口的宽和高
			canvas.attr("height", $(window).get(0).innerHeight);	//用到了重置canvas高和宽	不使用$(window).height(),因为似乎并不支持所有浏览器
			context.fillRect(0, 0, canvas.width(), canvas.height());
		}

		resizeCanvas();

	});
  </script>

 </head>

 <body>

  <canvas id="myCanvas" width="1000" height="1000">
  </canvas>

 </body>

</html>

时间: 2024-07-29 18:51:36

HTML5读书笔记之三:Canvas基础知识的相关文章

Java并发编程实践读书笔记--第一部分 基础知识

目前关于线程安全性没有一个统一的定义,作者自己总结了一个定义,如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么就称这个类是线程安全的. 在并发编程中,由于不恰当的执行时序而出现不确定的结果的情况被称为竞态条件(Race Condition).最常见的竞态条件就是“先检查后执行(Check-Then-Act)”操作,即通过一个可能已经失效的观察来决定下一步的动作.比较简单的例子就是两

《Effective C++》 读书笔记之三 资源管理

<Effective C++> 读书笔记之三 资源管理 准备知识: 所谓资源就是,一旦用了它,将来必须还给系统.最常用的资源是动态分配内存,其他常见的资源有文件描述器.互斥锁.图形界面的字形和笔刷.数据库连接以及网络sockets. auto_ptr 是个"类指针对象",就是所谓的智能指针,其析构函数自动对其所指对象调用delete.auto_ptr位于 #include <memory> 头文件.由于auto_ptr被销毁时会自动删除它所指之物,所以一定要注意

canvas基础知识

低版本的ie不支持html5,需要引入excanvas.js来让ie支持canvas.检测<canvas id="canvas" width="150" height="200" > 你的浏览器不支持canvas</canvas>var canvas = document.getElementById('canvas');if(canvas.getContext) alert('支持canvas'); >> 绘

深入理解计算机系统读书笔记一 ---&gt; 计算机基础漫游

一.程序编译的不同阶段. 通常我们是以高级程序开发易于阅读的代码,我们通过语法规则推断代码的具体含义.但是计算机执行代码的时候就需要把代码解析成既定的可执行问题,计算机是如何处理的呢?这里以C语言hello.c文件为例来说明中间过程. #include <stdio.h> int main() { printf("hello world!\n"); } 先上张图. C语言源程序----预处理解析头文件和函数  --- 编译器解析成汇编语言 ---   翻译机器语言指令,打包

APUE 学习笔记(一) Unix基础知识

1. Unix 体系结构 内核的接口被称为系统调用 公用函数库构建在系统调用接口之上 应用软件既可以调用公用函数库,也可以直接进行系统调用 2. 文件和目录 目录操作函数:opendir---> readdir---> closedir struct dirent 结构体 stat 系统调用 3.程序.进程.线程 程序:存放在磁盘上.并处于某个目录中的一个可执行文件.使用exec系列函数将程序从磁盘读入存储器,并使其执行 进程:程序的执行实体.进程控制的3个函数:fork.exec.waitp

[terry笔记]data guard基础知识

如下介绍了data guard的基础知识,整理自网络: Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数据之前的同步,这种同步可以是实时,延时,同步,异步多种形式.Data Gurad 常用于异地容灾和小企业的高可用性方案,虽然可以在Standby 机器上执行只读查询,从而分散Primary 苏菊哭的性能压力,但是Data Gurad 决不是性能解决方案. 在Data Gurad 环境中,至少有两个数据库,一个处于Open 状态对外提供服

《CLR via C#》读书笔记 之 线程基础

第二十五章 线程基础 2014-06-28 25.1 Windows为什么要支持线程 25.2 线程开销 25.3 停止疯狂 25.6 CLR线程和Windows线程 25.7 使用专用线程执行异步的计算限制操作 25.8 使用线程的理由 25.9 线程调度和优先级 25.10 前台线程和后台线程 参考 25.1 Windows为什么要支持线程 返回 Microsoft设计OS内核时,他们决定在一个进程(process)中运行应用程序的每个实例.进程不过是应用程序的一个实例要使用的资源的一个集合

【读书笔记】性能测试基础

读书笔记:<零成本实现Web性能测试>第1~3章随手记 第1章 性能测试基础 性能测试的基本流程: 1.明确性能测试需求 2.制定性能测试方案 性能测试方案应该详尽地描述如何进行性能测试,其中应该至少包括: 1)测试背景 2)测试目的 3)测试范围           4)测试进入条件           5)测试退出条件 6)测试指标要求 7)测试策略 8)测试时机 9)测试风险 10)测试资源      3.编写性能测试案例 4.执行性能测试案例 5.分析性能测试结果 6.生成性能测试报告

canvas 基础知识整理

canvas这个 HTML 元素是为了客户端矢量图形而设计的.它自己没有行为,但却把一个绘图 API 展现给客户端 JavaScript 以使脚本能够把想绘制的东西都绘制到一块画布上. html的基本结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset=UTF-8> <title>Document</title> <style> #myCanv