扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
HTML5中canvas元素,绘制圆形需要使用路径,开始时要取得图形上下文,首先使用路径来勾勒图形的轮廓,然后设置颜色,进行绘制。
创新互联专业为企业提供万柏林网站建设、万柏林做网站、万柏林网站设计、万柏林网站制作等企业网站建设、网页设计与制作、万柏林企业网站模板建站服务,10年万柏林做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
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();
使用创建好的路径绘制图形。
这个为啥要用边框呀我的天,两个大小不同的圆进行重叠就行了,下面的黑色大点,上面的白色小点,然后在大圆的左下角,就是一个大盒子包裹一个小盒子。
很简单的
%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%
!DOCTYPE HTML
html
body
canvas id="myCanvas" width="600" height="400" style="background-color: #EED2EE; "
/canvas
script type="text/javascript"
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
//绘制左侧的白色半圆直径都是150
cxt.fillStyle="#FFFFFF";
cxt.beginPath();
cxt.arc(300,200,150,1.5*Math.PI,Math.PI/2,false);
cxt.closePath();
cxt.fill();
//绘制右侧的黑色半圆
cxt.fillStyle="#000000";
cxt.beginPath();
cxt.arc(300,200,150,Math.PI/2,1.5*Math.PI,false);
cxt.closePath();
cxt.fill();
//绘制下面的黑色圆
cxt.fillStyle="#000000";
cxt.beginPath();
cxt.arc(300,275,75,0,2*Math.PI,false);
cxt.closePath();
cxt.fill();
//绘制上面的白色圆
cxt.fillStyle="#FFFFFF";
cxt.beginPath();
cxt.arc(300,125,75,0,2*Math.PI,false);
cxt.closePath();
cxt.fill();
//绘制两个小圆
cxt.fillStyle="FFFFFF";
cxt.beginPath();
cxt.arc(300,275,10,0,2*Math.PI,false);
cxt.closePath();
cxt.fill();
//绘制黑色小圆
cxt.fillStyle="#000";
cxt.beginPath();
cxt.arc(300,125,10,0,2*Math.PI,false);
cxt.closePath();
cxt.fill();
/script
/body
/html
不使用任何js就可以实现,兼容各个主要浏览器,ie8以下除外
html结构
ul class='cirBox'
li1/li
li2/li
li3/li
li4/li
/ul
css结构
style
.cirBox li{ float:left; border-radius:50%; width:100px; height:100px; background-color:#F00;}
.cirBox li:nth-of-type(even){width:50px;border-radius:100px 0 0 100px; }/*获取偶数项li 并设置为半圆*/
/style
1. 可以使用html,css做一个圆,然后把右侧的部分隐藏。
2. 可以嵌入svg,画一个半圆。
3. 可以用canvas画一个半圆。
cxt.arc(100,100,30,0,Math.PI*2,true); 括号内第一个和第二个参数,代表圆心坐标。第三个参数是圆的半径。第四个参数代表圆周起始位置。0 PI就是起始位置。沿顺时针路线,分别是0.5 PI(正下方),1 PI和1.5 PI(正上方),为画饼图提供了扇形范围的依据。 第五个参数是弧长Math.PI*2就是整个圆,Math.PI是半圆。第六个参数是一个布尔值,true是顺时针false是顺时针。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流