canvas 绘圆加边框
HTML5中canvas元素,绘制圆形需要使用路径,开始时要取得图形上下文,首先使用路径来勾勒图形的轮廓,然后设置颜色,进行绘制。
arc(cx,cy,radius,start_angle,end_angle,direction);
cx 水平坐标
cy 垂直坐标
radius 圆心
start-angel 圆周起始位置 (以圆心为参考点,不是以坐标原点为参考点。下面配图详细解释)
end_angle 圆周结束位置 Math.PI是半圆 Math.PI*2是整个圆 0.5为四分之一
direction 顺、逆时针 false为顺时针,true为逆时针(决定了圆弧的方向)
<!DOCTYPE html>
<head>
<meta charset="UTF-8" />
<script> function draw(id) {
var canvas = document.getElementById(id);
if (canvas == null) return false;
var context = canvas.getContext('2d');
context.fillStyle = "#EEEEFF";
context.fillRect(0, 0, 400, 300);
var n = 0;
for (var i = 0; i < 10; i++) {
context.beginPath();
context.arc(i * 25, i * 25, i * 10, 0, Math.PI * 2, true);
context.closePath();
context.fillStyle = 'rgba(255, 0, 0, 0.25)';
context.fill();
}
}
</script>
</head>
<body onLoad="draw('canvas');">
<canvas id="canvas" width="400" height="300"/>
</body>
</html>
context.beginPath();
该方法不使用参数,通过调用该方法,开始路径的绘制。在几次循环的创建路径的过程中,每次开始创建是都要调用beginPath函数。
context.arc(x,y,radius,startAngle,endAngle,anticlockwise)
该方法使用六个参数,x为绘制圆形的起点横坐标,y为绘制圆形图形的起点坐标,radius为绘制圆形半径,
starAngle为开始角度(以圆心为参考点,绕圆心旋转,不是以坐标原点为参考点),endAngle为结束角度,anticlockwise为是否按顺时针方向进行绘制。
arc方法不仅可以用来绘制圆形,也可以用来绘制圆弧。
context.closePath();
将路径关闭后,路径的创建工作就完成了,但还没有真正绘制任何图形。
context.fillStyle = 'rgba(255, 0, 0, 0.25)';
context.fill();
使用创建好的路径绘制图形。
<!DOCTYPE html>
<html><head><meta charset="gbk">
<title>HTML5 Canvas画圆</title>
</head>
<body>
<canvas id="canvas" width="400" height="400" style="border:2px solid blue;"></canvas>
<script> var canvas = document.getElementById("canvas");
var context = canvas.getContext('2d');
var types = ["Arc.OPEN","Arc.CHORD","Arc.PIE"];
function render(w, h,context) {
context.lineWidth=5;
for (var i = 0; i < types.length; i++) {
context.lineWidth=5;
context.strokeStyle="blue";
context.beginPath();
context.arc((i+1)*w/4,(i+1)*h/4, w/10,Math.PI/4,3*Math.PI/2,false) if(i==1) context.closePath();
if(i==2) {
context.lineTo((i+1)*w/4,(i+1)*h/4)
context.closePath();
}
context.stroke();
context.fillStyle="gray";
context.fill();
}
}
render(400,400,context); </script></body></html>
转:http://www.108js.com/article/article7/70206.html?id=1036
canvas 绘圆加边框的更多相关文章
- 74、shape 画圆 加 边框
<?xml version="1.0" encoding="utf-8"?> <!--<shape xmlns:android=&quo ...
- canvas 绘点图
canvas 绘点图 项目中需要一个记录点实时变动的信息,在此记录一下: <!DOCTYPE html> <html lang="en"> <head ...
- html5 canvas从圆开始
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Html-浅谈如何正确给table加边框
一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式 <style> table,table tr th, table tr td { border:1px so ...
- 多行图片hover加边框兼容IE7+
问题: 遇到多行多列排列的图片时,hover上去加边框会把下面的图片挤到别处 ============================================================ ...
- div加边框
一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px dashed #000 代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #0 ...
- CSS鼠标悬停图片加边框效果,不位移的方法
<!DOCTYPE HTML> <html lang="en-US"> <head> <title>css实现鼠标悬停时图片加边框效 ...
- AS3给显示对象加边框
给显示对象加边框,可以有以下三种方法1.根据相交路径的缠绕规则的奇偶规则法(使用奇偶缠绕规则时,任何相交路径都交替使用开放填充与闭合填充.如果使用同一填充绘制的两个正方形相交,则不会填充相交的区域.通 ...
- QT自绘标题和边框
在QT中如果想要自绘标题和边框,一般步骤是: 1) 在创建窗口前设置Qt::FramelessWindowHint标志,设置该标志后会创建一个无标题.无边框的窗口. 2)在客户区域的顶部创建一个自绘标 ...
随机推荐
- javascript 传递引用类型参数
JavaScript代码如下: function setName(obj){ obj.name = "test1"; obj = new Object(); obj.name = ...
- c++cin.ignore()
c++ 中cin.ignore(100,'\n'); 的作用是清除输入流中多余的字符请问这句话是什么意思? 可以举个例子吗? 提问者采纳 这个其实就是忽略cin中的前100个字符,或是'\n'之前的字 ...
- MongoDB条件查询
1.查询集合中的所有记录 db.users.find() { "_id" : ObjectId("528b1173613e3289197a6486"), &qu ...
- sopcinfo路径改变,nios工程该怎么办?
操作系统:Win7 64 bit 开发环境:Quartus II 14.0 (64-Bit) + Nios II EDS 14.0 使用Quartus 时,有时候出于备份的考虑,或者从网上下载别人的 ...
- js压缩反压缩
JavaScript unpacker and beautifier JavaScript Beautifier http://prettydiff.com/?m=beautify&s=htt ...
- Android开发-API指南-<provider>
<provider> 英文原文:http://developer.android.com/guide/topics/manifest/provider-element.html 采集(更新 ...
- 分段播放的flash播放器
效果: 视频分段好处显而易见,就是节省流量,因为看视频很多时候都不会看完,还有很多时候是跳着看的.还有的时候也许用户暂停视频出去买东西了... 本文不讨论flash rtmp直播流,例子用的是普通的h ...
- 三方框架之masonry
这个详细的介绍:http://www.cocoachina.com/ios/20141219/10702.html Masonry 源码:https://github.com/Masonry/Maso ...
- OSGI.NET 学习笔记--架构篇
关于osgi.net ,想必大家也听说过,以下是自己在学习osgi.net 过程中整理出来的内容,供大家学习参与使用. 1. UIOSP 开放工厂框架架构 开放工厂所有插件基于OSGi.NET面向服 ...
- 使用HTTP协下载文件
通过发送HTTP请求,下载文件 头文件: #ifndef __HTTP__ #define __HTTP__ #include <stdio.h> #include <stdlib. ...

