用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代码这句就行了。

时间: 2024-08-01 06:28:44

用canvas画环形圆形图片的相关文章

canvas画简单圆形动画

HTML: 1 <html> 2 <head> 3 <title>canvas画圆</title> 4 <meta http-equiv="content-type" content="text/html" charset="utf-8"> 5 <link rel="stylesheet" href="circle.css"/> 6 &

Android自定义圆形图片

最近研究了一下圆形图片控件,之前一直是用别人写好的类,自己写一下,发现对canvas理解更深入了. 基本思路: 自定义CircleImageView继承自ImageView,在canvas中新建一个图层,先把要显示的头像绘制在上面,再绘制圆形遮罩,设置画笔模式为:当两个图像重叠时,显示交叉部分下面的图像. 源码如下:(直接拿去用就可以了) package com.lt.DrawDemo; import android.content.Context; import android.graphic

Canvas图保存成图片或pdf

Canvas画好的图片虽然可以通过toDataURL()转成二进制流的字符串格式,图片稍大一点就无法发送了,当然如果需求简单的话,可以在页面上加一个image元素,将转成的流直接赋给image的src就可以显示图片了. 但是大部分的时候我们还希望弹出保存框,保存图片到我们自己想要的路径下,或者添加一些统计和分析的信息到pdf中一起保存成一个pdf文件,这就需要在后台处理了,两种方式:后台新建一个Web Browser加载当前的页面,然后将获得到的图片流的信息再发送到前台弹出保存的对话框,后台发送

在android中画圆形图片的几种办法

在开发中经常会有一些需求,比如显示头像,显示一些特殊的需求,将图片显示成圆角或者圆形或者其他的一些形状.但是往往我们手上的图片或者从服务器获取到的图片都是方形的.这时候就需要我们自己进行处理,将图片处理成所需要的形状.正如茴香豆的的"茴"写法大于一种,经过我的研究,画出特殊图片的方法也不是一种,我发现了三种,且听我一一道来. 使用Xfermode 两图相交方式 通过查找资料发现android中可以设置画笔的Xfermode即相交模式,从而设置两张图相交之后的显示方式,具体模式见下图,源

Android_AsyncTaskDemo之QQ记步数(画圆形图片知识)

今天学习了AsyncTask Android 的异步机制.我简单的实现我的一个小小案例--qq记步数.然后穿插一个画圆形图片的知识点. 由于所学知识有限,目前我计数,还有排名等等我就简单的利用随机数实现.多有不是之处见谅啊. 我们的xml layout布局文件 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.a

HTML5之Canvas画圆形

1.设计源码 <!DOCTYPE html> <head> <meta charset="utf-8" /> <title>HTML5之Canvas画圆形</title> </head> <body onLoad="drawFour('canvas')"> <canvas id="canvas" width="1200" height=&

Python3 tkinter基础 Canvas create_rectangle 画虚边的矩形 create_oval 画椭圆形 圆形

? python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 conda : 4.5.11 type setting : Markdown ? code """ @Author : 行初心 @Date : 18-9-30 @Blog : www.cnblogs.com/xingchuxin @GitHub : github.com/GratefulHeartCoder """ fr

自定义圆形图片

圆形图片相必是项目开发中也是不少用的一个知识点吧. 那么这里学习一下简单的制作圆形图片,主要运用 BitmapShader 类的知识来实现 一.首先,了解一下 BitmapShader 类 BitmapShader是Shader的子类,可以通过Paint.setShader(Shader shader)进行设置 看一下BitmapShader 的构造方法 BitmapShader bitmapShader = new BitmapShader(bitmap,TileMode, TileMode)

Android圆形图片--自定义控件

Android圆形图片控件效果图如下: 代码如下: RoundImageView.java package com.dxd.roundimageview; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.Bitmap.Config; import android.graphics.Canvas