HTML5——Canvas画布绘制图像、绘制线型和绘制图片
一、创建路径
endAngle—创建路径的终点(PI*2)
fill()—绘制实心图像
clip()—截取图像,只有矩形或圆形内的图像保留
<html>
<head>
<title>一个大大的八卦</title>
<meta charset="utf-8"/>
</head>
<body>
<canvas id="canv" width="800px" height="800px"></canvas>
</body>
<script>
var canvas=document.getElementById("canv");
var ctx=canvas.getContext("2d");
//绘制完整圆形--空心
ctx.beginPath();
ctx.arc(400,400,300,0,Math.PI*2);
ctx.stroke();
//绘制半圆
ctx.fillStyle="black";
ctx.beginPath();
ctx.arc(400,400,300,Math.PI/2,Math.PI*3/2);
ctx.fill();
//绘制两个半圆
ctx.beginPath();
ctx.arc(400,550,150,Math.PI/2,Math.PI*3/2,true);
ctx.fill();
ctx.fillStyle="white";
ctx.beginPath();
ctx.arc(400,250,150,Math.PI/2,Math.PI*3/2);
ctx.fill();
ctx.beginPath();
ctx.arc(400,550,30,0,Math.PI*2);
ctx.fill();
ctx.fillStyle="black";
ctx.beginPath();
ctx.arc(400,250,30,0,Math.PI*2);
ctx.fill();
</script>
</html>
![](/assets/blank.gif)
二、绘制线型
<html>
<head>
<title>设置线型</title>
<meta charset="utf-8"/>
</head>
<body>
<canvas id="canv" width="800px" height="800px"></canvas>
</body>
<script>
var canv=document.getElementById("canv");
var ctx=canv.getContext("2d");
ctx.lineWidth="10";
//ctx.lineCap="round";
ctx.lineCap="butt";
//ctx.lineJoin="round";
//ctx.lineJoin="bevel";
ctx.lineJoin="miter";
ctx.beginPath();
ctx.moveTo(200,80);
ctx.lineTo(200,220);
ctx.lineTo(240,80);
ctx.stroke();
</script>
</html>
三、绘制图片
将该返回值赋值给fillStyle属性
使用fillRect()方法进行绘制
<html>
<head>
<title>平铺图片</title>
<meta charset="utf-8"/>
</head>
<body>
<canvas id="canvas" width="1000px" height="2000px"style="background:yellow"></canvas>
<script>
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var img=new Image();
img.src="Jellyfish.jpg";
img.οnlοad=function(){
var ptn=context.createPattern(img,"repeat");
context.fillStyle=ptn;
context.fillRect(0,0,canvas.width,canvas.height);
}
</script>
</body>
</html>
![](/assets/blank.gif)
三、画布方法
restore()—恢复画布的设置
y—height的放大倍数,如果值小于1,表示缩小
该方法相对上次translate()设置的坐标进行移动,如果之前没有translate()方法,则相对于原点进行移动
公式为 degrees * Math.PI / 180
<html>
<head>
<title>画布的转换方法</title>
<meta charset="utf-8"/>
</head>
<body>
<canvas id="canv" width="500px" height="500px" style="border:1px solid red"></canvas>
<input id="start" type="button" value="开始">
</body>
<script>
var canv=document.getElementById("canv");
var ctx=canv.getContext("2d");
var btn=document.getElementById("start");
btn.οnclick=function(){
ctx.translate(160,30);
ctx.fillStyle="rgba(120,93,222,0.25)";
ctx.fillRect(0,0,100,50);
for(var i=0;i<50;i++){
ctx.translate(10,10);
ctx.scale(0.95,0.95);
ctx.rotate(Math.PI/30);
ctx.fillRect(0,0,100,50);
}
}
</script>
</html>
![](/assets/blank.gif)
HTML5——Canvas画布绘制图像、绘制线型和绘制图片相关推荐
- php画布怎么清除,JavaScript_JavaScript html5 canvas画布中删除一个块区域的方法,本文实例讲述了html5 canvas画布 - phpStudy...
JavaScript html5 canvas画布中删除一个块区域的方法 本文实例讲述了html5 canvas画布中删除一个块区域的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 附:图 ...
- CSS3 渐变新特性和HTML5 Canvas画布背景渐变实现方法详解
CSS3 渐变新特性和HTML5 Canvas画布背景渐变实现方法详解 大家好,又见面了,感觉我上一篇博客对部分同学都挺有帮助的,于是我决定继续写下去,会继续的解析知识点让大家更容易理解,希望能给大家 ...
- html5 图片弹跳,html5 canvas画布里面圆球弹跳动画效果代码
特效描述:html5 canvas 画布 圆球弹跳动画.html5 跳动的球体 代码结构 1. HTML代码 Untitled Document body { margin: 0px; } var i ...
- html像素绘制文字,HTML5 - Canvas的使用样例10(绘制文本)
1,设置绘图上下文的font属性 (1)设置字体大小(像素)和字体名称 context.font = "22px Arial"; (2)为了适应多个浏览器,字体名字可以多列几种 c ...
- html5 canvas画布上合成
source-over 默认.在目标图像上显示源图像. source-atop 在目标图像顶部显示源图像.源图像位于目标图像之外的部分是不可见的. source-in 在目标图像中显示源图像.只有目标 ...
- HTML5 Canvas中处理图像和视频
处理图像和视频 除了绘制矢量图形和文本之外,canvas还提供了极为丰富的图像支持.开发者可以选择绘制某幅图像的全部或某个部分,在绘制时可以进行缩放或保持原样,可以把图像绘制到画布的任何地方.同时,还 ...
- HTML5 canvas 画布
画布 canvas 与 svg canvas 能够做什么? 创建一块小画布(canvas) 创建画笔(getContext('2d')) 绘制矩形(fillRect(x,y,width,height) ...
- html5 canvas 画布基础
canvas 画布基础 学习整理的笔记,内容丰富 有绘制矩形,绘制线条,绘制二次贝塞尔曲线,绘制弧线等.知识点在代码注释中 效果图: 代码: <!DOCTYPE html> <htm ...
- html5画布作品,HTML5 canvas画布
这里创建canvas标签,并定义其id为mycanvas,便于javascript绘图时获取该标签对象. 再看javascript绘图部分: var c=document.getelementbyid ...
最新文章
- 无法嵌入互操作类型...请改用适用的接口 解决办法
- 不要再被 Python 洗脑了!!
- 编译原理练习题(第二章)
- 自主互助四环节之计算机教案,自主互助学习型课堂的实施方案
- FIFO跨时钟域读写
- MATLAB二维图形坐标变换
- thinkphp-条件判断-范围判断-NOTBETWEEN
- 根据xml生成相应的对象类
- EasyUI层与拖拽系列控件
- 人脸检测(十六)--Cascade CNN
- MySQL入门第三天(下)——存储过程与存储引擎
- php zip类,php ZIP压缩类实例步骤详解
- ACL2016最佳论文:通过交互学习语言游戏
- mt4代理服务器存放文件,mt4如何保存设置好的指标?
- 全国大学生数学建模2018年A题高温作业专用服装设计
- 依据余弦相似度查找常用汉字形似字
- 揭秘北京奥运会上的中国保镖[转贴]
- python画蝴蝶结_Shapely用户手册
- 路径规划学习之地图生成(一)
- 微信编辑器实用小功能