代码Canvas.htm

<!DOCTYPE html>
<html lang="en">
<head>
<title>canvas简单应用画各种图形状</title>
</head>
<!--<script language="javascript" src="jquery-1.8.3.js"></script>-->
<script language="javascript" type="text/javascript">
//通过画线段构造三角形
function draw_triangle(x1,y1,x2,y2,x3,y3){
var c = document.getElementById("canvas1");
var cxt = c.getContext("2d");
cxt.moveTo(x1,y1);
cxt.lineTo(x2,y2);
cxt.lineTo(x3,y3);
cxt.lineTo(x1,y1);
cxt.stroke();
}
//画三角进一步封装
function draw(){
draw_triangle(100,50,300,200,150,100);
}
//向canvas原型对象添加画扇形方法
CanvasRenderingContext2D.prototype.selector=function(x,y,radius,sDeg,eDeg){
//保存初始状态
this.save();
// 位移到目标点
this.translate(x, y);
this.beginPath();
// 画出圆弧
this.arc(0,0,radius,sDeg, eDeg);
// 再次保存以备旋转
this.save();
// 旋转至起始角度
this.rotate(eDeg);
// 移动到终点,准备连接终点与圆心
this.moveTo(radius,0);
// 连接到圆心
this.lineTo(0,0);
// 还原
this.restore();
// 旋转至起点角度
this.rotate(sDeg);
// 从圆心连接到起点
this.lineTo(radius,0);
this.closePath();
// 还原到最初保存的状态
this.restore();
return this;
}
function b(){
var c = document.getElementById("canvas1");
var cxt = c.getContext("2d");
//画线
/**cxt.moveTo(10,10);
cxt.lineTo(60,80);
cxt.stroke();**/
//画图片
/*cxt.beginPath();
var img = new Image();
img.src = 'b.jpg';
img.onload=function(){
cxt.drawImage(img,0,0);*/
//画圆环
/*cxt.clearRect(0,0,1200,400);
cxt.beginPath();
cxt.arc(300,100,60,Math.PI*2,false);
cxt.closePath();
cxt.fill();
cxt.fillStyle="white";
cxt.beginPath();
cxt.arc(300,100,50,Math.PI*2,false);
cxt.closePath();
cxt.fill();*/
//画圆弧
cxt.selector(100,100,50,0,Math.PI*0.75);
}
</script>
<body onload="b();">
<!--<canvas id="cans" width="500px" height="300px" style="border:1px solid red;">浏览器不支持canvas</canvas>-->
<canvas id="canvas1" width="1200" height="400" style="border:1px solid red">浏览器不支持该功能</canvas>
<button onclick="draw()">start</button>
</body>
</html>

  

运行效果:三角和圆弧

canvas常用画法整理的更多相关文章

  1. NiosII常用函数整理

    NiosII常用函数整理 IO操作函数函数原型:IORD(BASE, REGNUM) 输入参数:BASE为寄存器的基地址,REGNUM为寄存器的偏移量函数说明:从基地址为BASE的设备中读取寄存器中偏 ...

  2. MAC机常用快捷键整理表格

    MAC机常用快捷键整理表格 范围 快捷键 说明 图形   (Command 键)在某些 Apple 键盘上,此键也可能为标志()     Control (Control 键)     Alt Opt ...

  3. sublime常用快捷键整理(未完待续)

    sublime常用快捷键整理: 基本操作 cmd+o 打开文件 cmd+w 关闭当前tab cmd+n 打开新页 cmd+shift+n 打开刚刚关闭的页签 一.选择命令 1.多个单词选择 cmd+d ...

  4. zendStudio常用快捷键整理

    在来一发zendstudio的常用快捷键整理,今天心情不错哈哈 Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ct ...

  5. 常用DOM整理

    常用DOM整理   前言: html为document搭建了一棵DOM树,这棵树就是有一系列Node节点所构成的.他为我们定义了文档的结构. Node类型: Node.ELEMENT_NODE(1); ...

  6. NSIS常用代码整理

    原文 NSIS常用代码整理 这是一些常用的NSIS代码,少轻狂特意整理出来,方便大家随时查看使用.不定期更新哦~~~ 1 ;获取操作系统盘符 2 ReadEnvStr $R0 SYSTEMDRIVE ...

  7. javascript中字符串常用操作整理

    javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...

  8. Win7常用快捷键整理

    Win7常用快捷键整理.. -------------------- Win + Pause:显示系统属性对话框 ------------------------------------ Win7系统 ...

  9. python 常用库整理

    python 常用库整理 GUI 图形界面 Tkinter: Tkinter wxPython:wxPython pyGTK:PyGTK pyQt:pyQt WEB框架 django:django w ...

随机推荐

  1. linux CentOS7.2安装ffmpeg-3.0.2

    ffmpeg是一款视频处理软件,在php5.5前以php_ffmpeg.dll扩展的方式存在,通过网上查资料显示,从php5.5以后不支持该扩展了.那么在linux系统下安装ffmpeg.方法如下: ...

  2. Vue.js的动态组件模板

    组件并不总是具有相同的结构.有时需要管理许多不同的状态.异步执行此操作会很有帮助. 实例: 组件模板某些网页中用于多个位置,例如通知,注释和附件.让我们来一起看一下评论,看一下我表达的意思是什么.评论 ...

  3. hihocoder #1062 : 最近公共祖先·一(小数据量 map+set模拟+标记检查 *【模板】思路 )

    #1062 : 最近公共祖先·一 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho最近发现了一个神奇的网站!虽然还不够像58同城那样神奇,但这个网站仍然让小Ho乐在 ...

  4. hdu1015 Safecracker —— 回溯

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015 代码1: #include<stdio.h>//hdu1015 #include&l ...

  5. Python视频教程

    Python这门语言相对学起来是简单点的,尤其对于测试人员来说,如果达到可以写自动化测试脚本的程度的话,学些基础就是可以的.那么在网上也是有很多资源的,各种培训的视频.作为一名过来人(哈哈),或者说是 ...

  6. scroll或是其子类被添加进view时,界面自动上移

    开发中经常会遇到ViewController添加scroll或是其子类被添加进controller.view时,scroll会自动下移大概64像素 解决: self.edgesForExtendedL ...

  7. Java生成UUID不重复的id值

    在Java中创建UUID在网上查资料才知道在Java中,变成了UUID.创建方式也出奇简单System.out.println( java.util.UUID.randomUUID());

  8. codeforces 31C Schedule 解题报告

    题目链接:http://codeforces.com/problemset/problem/31/C 题目意思:给出 n 个 lessons 你,每个lesson 有对应的 起始和结束时间.问通过删除 ...

  9. html5--3.17 新增的表单重写

    html5--3.17 新增的表单重写 学习要点 对form元素的属性做一个小结,对个别属性进行一点补充 重点掌握新增的表单重写 form元素的属性小结 action/method/enctype/n ...

  10. 关于RHEL5中yum挂载iso源引起的问题(转)

    今天在虚机上通过yum挂载iso源来安装rpm包,但提示错误,内容见下面.之前也有过这样的操作, mount后,修改repo文件,然后就可以yum install  rpm包了:过程很简单啊.不知道这 ...