canvas画图,一些总结以及实例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<canvas id="canvas" width="400px" height="400px"></canvas>
</body>
<script type="text/javascript">
var canvas=document.getElementById('canvas');
if(canvas==null){
return false;
}
var context=canvas.getContext('2d');

// context.fillRect(0,0,100,100);
// context.strokeRect(120,0,100,100);
//
// context.fillStyle="red";
// context.strokeStyle="aqua";
// context.fillRect(0,120,100,100);
// context.strokeRect(120,120,100,100);
//
// context.fillStyle="rgba(255,0,0,0.2)";
// context.strokeStyle="rgba(255,0,0,0.2)";
// context.fillRect(240,0,100,100);
// context.strokeRect(240,120,100,100);
// context.clearRect(50,50,240,120);

//context.arc(x,y,radius.atarAngle,anticlock,anticlockwise)
// x:圆心的x坐标
// y:圆心的y坐标
// straAngle:开始角度
// endAngle:结束角度
// anticlockwise:是否逆时针(true)为逆时针,(false)为顺时针
//
// context.beginPath();
// context.arc(200,150,100,0,Math.PI*2,false);
// context.closePath();
// context.fillStyle="orangered";
// context.fill();

// var n=0;
// context.beginPath();
// context.arc(100,150,50,0,Math.PI/2,false);
// context.fillStyle="orchid";
// context.fill();
// context.strokeStyle="chartreuse";
// context.closePath();
// context.stroke();
//
// context.beginPath();
// context.arc(300,150,50,0,Math.PI/2,false);
// context.fillStyle="orchid";
// context.fill();
// context.strokeStyle="chartreuse";
// context.closePath();
// context.stroke();

// 对于线段的绘制
// x:x坐标
// y:y坐标
// 每次画线都从moveTo的点到lineTo的点,
// 如果没有moveTo那么第一次lineTo的效果和moveTo一样,
// 每次lineTo后如果没有moveTo,那么下次lineTo的开始点为前一次lineTo的结束点

//
// context.beginPath();
// context.strokeStyle = "rgb(250,0,0)";
// context.fillStyle = "rgb(250,0,0)"
// //实验证明第一次lineTo的时候和moveTo功能一样
// context.lineTo(100, 100);
// //之后的lineTo会以上次lineTo的节点为开始
// context.lineTo(200, 200);
// context.lineTo(200, 100);
// context.moveTo(200, 50);
// context.lineTo(100,50);
// context.stroke();

//菊花图
// context.fillStyle="cornsilk";
// context.fillRect(0,0,400,300);
// var n=0;
// var dx=150;
// var dy=150;
// var s=100;
// context.beginPath();
// context.fillStyle="darkorange";
// context.strokeStyle="black";
// var x=Math.sin(0);
// var y=Math.cos(0);
// var dig=Math.PI/1511;
// for (var i=0;i<30;i++) {
// var x=Math.sin(i
dig);
// var y=Math.cos(idig);
// context.lineTo(dx+x
s,dy+y*s)
// }
// context.closePath();
// context.fill();
// context.stroke();

  //绘制贝塞尔曲线context.bezierCurveTo(cp1x,cp1y,cp2x,cp2y,x,y) 
  //绘制二次样条曲线 context.quadraticCurveTo(qcpx,qcpy,qx,qy)

// cp1x:第一个控制点x坐标
// cp1y:第一个控制点y坐标
// cp2x:第二个控制点x坐标
// cp2y:第二个控制点y坐标
// x:终点x坐标
// y:终点y坐标
//
// qcpx:二次样条曲线控制点x坐标
// qcpy:二次样条曲线控制点y坐标
// qx:二次样条曲线终点x坐标
// qy:二次样条曲线终点y坐标

// context.moveTo(50,50);
// context.bezierCurveTo(50,50,150,50,150,150);
// context.stroke();
// context.quadraticCurveTo(150,250,250,250);
// context.stroke();

// context.fillStyle="chocolate";
// context.fillRect(0,0,400,300);
// var n=0;
// var dx=150;
// var dy=150;
// var s=100;
// context.beginPath();
// context.fillStyle="cadetblue";
// var x=Math.sin(0);
// var y=Math.cos(0);
// var dig =Math.PI/1511;
// for (var i=0;i<30;i++) {
// var x=Math.sin(i
dig);
// var y=Math.cos(i*dig);
// context.bezierCurveTo(dx + x * s, dy + y * s , dx + x * s , dy + y * s, dx + x * s, dy + y * s)
// }
// context.closePath();
// context.fill();
// context.stroke();

//线性渐变var lg= context.createLinearGradient(xStart,yStart,xEnd,yEnd)
// 线性渐变颜色lg.addColorStop(offset,color)

// xstart:渐变开始点x坐标
// ystart:渐变开始点y坐标
// xEnd:渐变结束点x坐标
// yEnd:渐变结束点y坐标
//
// offset:设定的颜色离渐变结束点的偏移量(0~1)
// color:绘制时要使用的颜色

// var gl=context.createLinearGradient(0,0,0,300)
//
// gl.addColorStop(0,"red");
// gl.addColorStop(0.5,"black");
// gl.addColorStop(1,"pink");
//
// context.fillStyle=gl;
// context.fillRect(0,0,400,300);

//径向渐变rg=context.createRadialGradient(xStart,yStart,radiusStart,xEnd,yEnd,radiusEnd)

// xStart:发散开始圆心x坐标
// yStart:发散开始圆心y坐标
// radiusStart:发散开始圆的半径
// xEnd:发散结束圆心的x坐标
// yEnd:发散结束圆心的y坐标
//
// radiusEnd:发散结束圆的半径
// offset:设定的颜色离渐变结束点的偏移量(0~1)
// color:绘制时要使用的颜色
// var gl=context.createRadialGradient(200,150,0,200,150,100)
// gl.addColorStop(0.1,"red");
// gl.addColorStop(1,"lightblue");
// context.fillStyle=gl;
// context.beginPath();
// context.arc(200,150,100,0,Math.PI*2,true);
// context.closePath();
// context.fill();

// var gl=context.createRadialGradient(100,150,10,300,150,50)
// gl.addColorStop(0.1,"red");
// gl.addColorStop(1,"lightblue");
// context.fillStyle=gl;
// context.fillRect(0,0,400,300);

// context.save();
// context.fillStyle="chartreuse";
// context.fillRect(0,0,400,300);
//
// context.fillStyle="crimson";
//
// context.translate(100,100);
// context.scale(0.5,0.5);
// context.rotate(Math.PI/4);
// context.fillRect(0,0,100,100);
//
// context.restore();
// context.save();
// context.fillStyle="aqua";
// context.translate(200,100);
// context.scale(0.8,0.8);
// context.rotate(Math.PI/4);
// context.fillRect(0,0,100,100);

</script>

</html>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335

推荐阅读更多精彩内容

  • 一:canvas简介 1.1什么是canvas? ①:canvas是HTML5提供的一种新标签 ②:HTML5 ...
    GreenHand1阅读 4,644评论 2 32
  • 0x001 Canvas是啥? 说白了Canvas就是一块画布,可以使用js当画笔在上面绘画的画布,可以显示在网页...
    卖梳子的鲤鱼阅读 1,834评论 1 21
  • 一、基础介绍和画直线 大多数现代浏览器都是支持Canvas的,比如 Firefox, safari, chrome...
    空谷悠阅读 797评论 0 1
  • 熟悉html5的程序员们肯定都知道 元素,该元素是用来在页面中规定一块区域,然后由js在该区域内绘制图形。canv...
    米几V阅读 2,125评论 1 5
  • 一、canvas简介 1.1 什么是canvas?(了解) 是HTML5提供的一种新标签 Canvas是一个矩形区...
    Looog阅读 3,916评论 3 40