使用canvas能画各种各样的东西

用过canvas的人都知道,在这个画布上面可以制作各种各样的动画效果,想必大家都用过这个。

晒晒刚刚用这个做的一个demo:

现在来画一个圆看看:

demo.js:

var can,ctx,count = 1,w,h,i;

can = document.getElementById(‘can‘);
ctx = can.getContext(‘2d‘);

w = document.body.scrollWidth;
h = document.body.scrollHeight;
can.setAttribute(‘width‘,w)
can.setAttribute(‘height‘,h)
 // angle for
    angle = Math.PI/2 * count;
    x = w/2 + Math.sin(angle);
    y = h/2 + Math.sin(angle);
    ctx.beginPath();

    ctx.arc(x,y ,h/6,0,2*Math.PI);
    ctx.fillStyle = ‘#3ff‘;
    ctx.strokeStyle = ‘#333‘;
    ctx.stroke();
    ctx.fill();

对应的.html:

<!DOCTYPE html>
<html >
  <head>
    <meta charset="UTF-8">
    <title>demo</title>
  </head>
  <body bgColor=‘#000‘>
    <canvas id="can"></canvas>
    <script src="js/demo.js"></script>
  </body>
</html>

这个太单调了,我们可以把angle这段代码循环一下,看看demo是什么效果?

demo.js:

for( i = 0; i <count;i++){
    angle = Math.random(Math.PI/2 * i);
    x = (w/3)*Math.sin(angle);
    y = h/3 + (1 + angle)*Math.sin(angle);
    ctx.beginPath();
    ctx.arc(2*x,y,h/8,0,2*Math.PI);
    ctx.fillStyle = ‘#3ff‘;
    ctx.strokeStyle = ‘#000‘;
    ctx.stroke();
    ctx.fill();
}

不想那么单调放水平,也可以这样有弧度:

有了它以后想做什么(神马)都可以! -/-

时间: 2024-12-07 20:01:33

使用canvas能画各种各样的东西的相关文章

Html5新特性 &lt;canvas&gt;画板画直线

 下面例子为用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 ht

[转]html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法

前面的文章我已经讲了3种在canvas中画曲线的方法:arc,arcTo以及quadraticCurveTo.他们都有一个共同点,就是他们画的曲线都只能偏向一边,今天讲的bezierCurveTo与他们最大的不同点就是有两个控制点,即可以画出S形的曲线了. bezierCurveTo,也就是所谓的贝赛尔曲线了,如果你学过某些画图工具,就能马上理解. bezierCurveTo的语法如下: ctx.bezierCurveTo(x1,y1,x2,y2,x,y);他的参数我照例解释一下,其中的(x1,

[转]html5 Canvas画图教程(9)—canvas中画出矩形和圆形

本文讲一下在canvas中画出矩形和圆形的办法,他们属于基础图形.当然,基础图形本来不止他们,但在canvas中,只有画矩形与圆形不需要用其他方法模拟. canvas画矩形 1,fillRect与strokeRect fillRect可以直接填充出一个矩形,填充样式是你当前设置的样式:同理strokeRect就是直接描边一个矩形 他们的参数是一致的,依次是(起点x坐标,起点y,矩形的宽,矩形的高).这里的起点,注意,是指矩形的左上角那个点. 我们通常用他们来做简单的事,他们也只能做简单的事.为什

[转]html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法

继续讲canvas中画曲线的方法,今天讲quadraticCurveTo. 说实话这个方法有点吓人,单从函数名称上都可以初体验.话说,我觉得有必要把这个函数名缩短. quadratic的意思是二次,即数学中二次元方程那个二次.而ctx.quadraticCurveTo的参数如下: 代码如下: ctx.quadraticCurveTo(x1,y1,x,y); 其中x,y是终点的坐标,而x1,y1是曲线控制点的坐标?什么?你问我起点在哪里?起点在此之前用moveTo确定. 我之所以把控制点的坐标带上

[转]html5 Canvas画图教程(5)—canvas里画曲线之arc方法

在canvas画线条这篇文章中,我讲了画直线的方法,按理这篇画曲线的文章早该发了,但由于canvas画曲线比较特殊,我还没摸透,所以要一步步尝试. canvas里画曲线的难点之一,就在于他连曲线的函数就有4个!分别是arc,arcTo,quadraticCurveTo,bezierCurveTo.我从最简单的arc方法讲起吧. arc的作用是画一个正规的圆弧,可以是一个完整的圆,也可以是一个圆的某一段弧线. arc的语法如下: 代码如下: context.arc(x, y, radius, st

canvas之画一个三角形

1 <canvas id="canvas" width="500" height="500" style="background-color: yellow;"></canvas> 1 var canvas=document.getElementById("canvas"); 2 var cxt=canvas.getContext("2d"); 3 cxt.beg

canvas之画圆

<canvas id="canvas" width="500" height="500" style="background-color: yellow;"></canvas> 1 var canvas=document.getElementById("canvas"); 2 var cxt=canvas.getContext("2d"); 3 //画一个空心圆

canvas之画一条线段

1 var canvas=document.getElementById("canvas"); 2 //设置绘图环境 3 var cxt=canvas.getContext('2d'); 4 //开启新路近 5 cxt.beginPath(); 6 // 设置笔触的宽度 7 cxt.lineWidth=10; 8 //设置笔触的颜色 9 cxt.strokeStyle="#00ff00"; 10 //设定笔触的位置 11 cxt.moveTo(20,20); 12

WEB前端开发学习----9. 使用canvas来画个时钟

canvas元素在html5中的重要性非同一般.配合JS让我们实现了在浏览器页面中作画的强大功能.不再单单依靠图片,flash等外部文件,减少http请求,从而网页加载速度更加快捷. 简单的线段: 看个小演示  canvas小房子 不用函数累死人.... 旋转: 使用提供的rotate()方法.需要注意的是,在旋转前,应该重新定位原点.一般来说将要旋转的图像的端点重定向为原点,以此为基础来旋转.也就是说先定位,再设置旋转角度,最后画图.看个演示  canvas 扇子.这样要比一道一道的画线方便许