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

时间: 2024-10-18 01:53:53

canvas 绘圆加边框的相关文章

74、shape 画圆 加 边框

1 <?xml version="1.0" encoding="utf-8"?> 2 <!--<shape xmlns:android="http://schemas.android.com/apk/res/android" 3 android:shape="ring" android:useLevel="false"> 4 5 <solid android:color=

用自定义的RoundImageView来实现圆形图片(可加边框)

本文的控件来自:http://blog.csdn.net/alan_biao/article/details/17379925 这个控件不同于之前介绍过的那个框架,这个仅仅能过将图片裁剪为圆形,没能弄成椭圆,也没有android:scaleType属性.但他可以提供两重边框,对于简单的使用来说,是完全够用的. 使用方式和之前一样,首先先配置attrs.xml <!-- border_thickness 设置边框的宽度 border_inside_color 设置内边框的颜色 border_out

【转载】CMenu自绘---钩子---去除边框

使用默认的CMenu菜单类或者继承CMenu实现的菜单扩展类,在显示的时候最外层都会有边框出现,或者说是具有3D外观(菜单阴影不算),当改变菜单背景色或者需要加个边框线时就会看上去很不美观.看过很多菜单的自定义实现类,一般可以有两种方式来实现外框的移除.       第一种方法就是:自定义窗口,完全模拟菜单的实现,自给自足,倒是能够完全满足开发需要,不过实现的复杂让人头痛,此处略过不提. 下面介绍第二种比较简单直接的方法:安装钩子,在菜单创建时就改变其窗口属性.其实菜单应该也算是一个窗口类,不过

html5 canvas从圆开始

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jQuery - 点击图片加边框

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>为图片添加边框</title> <script type="text/javascript" src="./js/jquery-1.8.3.min.js"></script> <scrip

android TextView加边框

为TextView加边框,需要在drawable建xml文件,里面设置shape来设置文本框的特殊效果. <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 实心 --> <solid android:color="@andr

div加边框

一.虚线与实线边框 边框虚线样式:dashed 边框实现样式:solid border:1px dashed #000 代表设置对象边框宽度为1px黑色虚线边框 border:1px solid #000 代表设置对象边框宽度为1px黑色实现边框 二.对div上边加边框 我们给div上边加1px黑色边框 div{border-top:1px solid #000} 三.给div底部加边框 给div盒子底部加2px虚线红色边框 div{border-bottom:2px dashed #F00}

鼠标悬浮给图片加边框,适合大型展示

鼠标悬浮给图片加边框 html代码 <div class="T-s-l fl"> <a href="" class="a1"> <img src="images/11.jpg" width="234" height="368" /> </a><a href="" class="a2"> &

PHP 给图片加边框

/** * 给图片加边框 by liangjian 2014-06-19 * @param $ImgUrl 图片地址 * @param $SavePath 新图片保存路径 * @param $px 边框像素 * @return Ambigous <boolean, 新图片的路径> */ function ImageAddBoard($ImgUrl, $SavePath, $px = 2) { $aPathInfo = pathinfo ( $ImgUrl ); // 文件名 $sFileNam