用canvas画环形圆形图片
 效果如图自动绘制不停歇
效果如图自动绘制不停歇
代码如下
  var canvas = document.getElementById('myCanvas'),width = canvas.width,height = canvas.height;
         var step,startAngle,endAngle,add=Math.PI*2/100;
         counterClockwise = false;
         var isDrawOver=true;
         var x1=Math.floor(200+100);//设置默认圆心X轴
         var y1=Math.floor(20+100);//设置默认圆心Y轴
         var x;var y;
         var radius1= Math.floor(10+50);//设置默认圆半径
         var radius;
         var animation_interval = 20,n = 100;
         var varName;
         function setCtxCanvas(){
              ctx = canvas.getContext('2d');
              ctx.shadowOffsetX = 0; // 设置水平位移
             ctx.shadowOffsetY = 0; // 设置垂直位移
              ctx.shadowBlur = 10; // 设置模糊度
             ctx.lineWidth = 1.0;
         }
         function actiondo(){
             if(isDrawOver){
                 isDrawOver=false;
                  setCtxCanvas();
                 step=1;
                 startAngle=0;
                 ctx.strokeStyle ='#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6);//圆圈颜色
                 ctx.shadowColor = '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).slice(-6); // 设置阴影颜色
                 //圆心位置
                 if(x==undefined&&y==undefined&&radius==undefined){
                     x=x1;
                    y=y1;
                    radius = radius1;
                 }
                 else if(x1==x&&y1==y&&radius1==radius){
                     x=x1;
                    y=y1-radius1;
                    radius = radius1/2;
                 }
                 else if(x==x1&&y<y1){
                     x=x1+radius1;
                    y=y1;
                    radius = radius1/2;
                 }
                 else if(y==y1&&x>x1){
                     x=x1;
                    y=y1+radius1;
                    radius = radius1/2;
                 }
                 else if(x==x1&&y>y1){
                     x=x1-radius1;
                    y=y1;
                    radius = radius1/2;
                 }
                 else if(x<x1&&y==y1){
                     x=x1;
                    y=y1;
                    radius = radius1;
                 }
                // var htmldiv='<div>x='+x+',y='+y+',radius='+radius+',x1='+x1+',y1='+y1+',radius1='+radius1+'</div>';
              //   $('#ddd').append(htmldiv);
                 varName= setInterval(animation, animation_interval);
                }
         }
 var animation = function () {
     if (step <= n) {
         endAngle = startAngle + add ;
         drawArc(startAngle, endAngle);
                 startAngle = endAngle;
         step++;
     } else {
         clearInterval(varName);
         isDrawOver=true;
         actiondo();
     }  
 };
 function drawArc(s, e) {
     ctx.beginPath();
     ctx.arc(x, y, radius, s, e, counterClockwise);
         ctx.lineWidth = 1.0;
         ctx.stroke();
 }  
代码如下直接运行
<canvas id="myCanvas" width="1200" height="300" style="border:0px solid #333;"></canvas>
html代码这句就行了。
用canvas画环形圆形图片的更多相关文章
- 用canvas 画出圆形图片
		/** * 把图片处理成圆形,如果不是正方形就按最小边一半为半径处理 * @param {object} imgObj 图片(img)对象 * @param {number} imgType 设置生成 ... 
- Android圆形图片不求人,自定义View实现(BitmapShader使用)
		在很多APP当中,圆形的图片是必不可少的元素,美观大方.本文将带领读者去实现一个圆形图片自定View,力求只用一个Java类来完成这件事情. 一.先上效果图 二.实现思路 在定义View 的onMea ... 
- Android_AsyncTaskDemo之QQ记步数(画圆形图片知识)
		今天学习了AsyncTask Android 的异步机制.我简单的实现我的一个小小案例--qq记步数.然后穿插一个画圆形图片的知识点. 由于所学知识有限,目前我计数,还有排名等等我就简单的利用随机数实 ... 
- canvas应用——将方形图片处理为圆形
		上段时间在项目中需要将方形图片处理为圆形图片,你可能会说直接用css设置border-radius: 50%就可以了,但是项目中还要将此图片的圆形图片作为一部分利用canvas将其绘制到一张背景图上面 ... 
- 在android中画圆形图片的几种办法
		在开发中常常会有一些需求,比方显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其它的一些形状. 可是往往我们手上的图片或者从server获取到的图片都是方形的.这时候就须要我们自己进行处理, ... 
- android通过Canvas和Paint截取无锯齿圆形图片
		一个通过Canvas和Paint截取无锯齿圆形图片. /** * 根据原图和变长绘制圆形图片 * * @param source * @param min * @return */ public st ... 
- HTML5之Canvas画圆形
		HTML5之Canvas画圆形 1.设计源码 <!DOCTYPE html> <head> <meta charset="utf-8" /> & ... 
- Python3 tkinter基础 Canvas create_rectangle 画虚边的矩形 create_oval 画椭圆形 圆形
		Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ... 
- android绘制圆形图片的两种方式
		看下效果先 下面有完整的示例代码 使用BitmapShader(着色器) 我们在绘制view 的时候 就是小学上美术课 用水彩笔在本子上画画 使用着色器绘制圆形图片最简单的理解方式 就是把bitmap ... 
随机推荐
- jQuery 利用 parent()  parents() 寻找父级  或祖宗元素
			$(this).parent().parent().parent().parent().parent().remove(); //此方法通过parent()一级一级往上找 $(this).pare ... 
- MongoDB基本使用
			成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显示 ... 
- php获取html纯文本,解决编辑器手动键入空格造成的无意义空白字符(空值问题)
			在项目中,我们常常需要用到一些验证,不管是前台还是后台的,上传的问题时,需要内容不为空,但可视化编辑器的介入让手动敲入空格跳出了常规的检测.空格是一种排版的手段,但毫无内容只有空格就显得没有意义了,今 ... 
- 【Alpha】Daily Scrum Meeting第四次
			之前没领悟到Daily Scrum Meeting的精髓,认为要做出些东西才敢拿出来. 在范老师提醒我们保持有节奏的迭代后,我们意识到之前的想法是不符合Daily Scrum Meeting的思想的. ... 
- apache配置rewrite及.htaccess文件(转载)
			今天看到一个哥们的帖子发了个rewrite的帖子,以前也写过一个,配置挺简单的,但当时没注意这个问题,当时没有用到.htaccess文件,在机子上测试了一下,发现确实没法用,于是开始找问题的所在. 自 ... 
- python使用mysql数据库
			一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ... 
- sublime3+quick3.5 完整使用教程
			sublime3+quick3.5 完整使用教程 Administrator 2015-07-15 14:43:08 1. 安装Sublime3 2. 注册Sublime3 Help- ... 
- 对拍老是忘记的看这里:bat代码
			需要写三个程序,makedata.exe 产生测试数据, program1.exe 是你要检测的程序,program2.exe 往往是一个正确但效率不高(暴力的居多)的程序. 代码很简单,稍作解释:l ... 
- 关于各种类型数据char、int、double、float 所占空间长度的计算,而char类型让我长姿势了
			#include <iostream> int main() { using namespace std; //int A=10; //double B=6; cout << ... 
- mac安装tensorflow报错
			问题:mac安装tensorflow过程中,爆出oserror:permission denied 解决方案:关闭mac的sip,然后sudo安装 关闭sip的方法:重启mac,按住command+R ... 
