html5中canvas脉冲运动示例

模拟球形的脉冲运动。

小球的构造函数如下:

// 圆球的构造函数
function Ball(radius, color) {
    if(radius === undefined) { radius = 40; }
    if(color === undefined) { color = "#ff0000"; }
    this.x = 0;
    this.y = 0;
    this.radius = radius;
    this.rotation = 0;
    this.scaleX = 1;
    this.scaleY = 1;
    this.color = color;
    this.lineWidth = 1;
}
Ball.prototype.draw = function(context) {
    context.save();
    context.translate(this.x, this.y);
    context.rotate(this.rotation);
    context.scale(this.scaleX, this.scaleY);
    context.lineWidth = this.lineWidth;
    context.fillStyle = this.color;
    context.beginPath();
    context.arc(0, 0, this.radius, 0, Math.PI * 2, true);
    context.closePath();
    context.fill();
    if(this.lineWidth > 0) {
        context.stroke();
    }
    context.restore();
}

二. 思路分析:

使用正弦值改变球形的比例,即可制造出脉冲效果。

如下:

<canvas id="canvas" width="200" height="200" style="background: #ccc;"></canvas>

var canvas = document.getElementById("canvas"),
    context = canvas.getContext("2d"),
    ball = new Ball(),
    angle = 5,
    centerScale = 1,
    range = 0.5,
    speed = 0.05;

    ball.x = canvas.height / 2;
    ball.y = canvas.height / 2;
    ball.lineWidth = 0;

(function drawFrame() {
    window.requestAnimationFrame(drawFrame, canvas);
    context.clearRect(0, 0, canvas.width, canvas.height);
    ball.scaleX = ball.scaleY = centerScale + Math.sin(angle) * range;
    angle += speed;
    ball.draw(context);
})();

时间: 2024-10-12 04:28:52

html5中canvas脉冲运动示例的相关文章

html5中canvas正弦波运动示例详解

一. 需求: 要求:让小球沿着正弦波运动. 小球的构造函数如下: // 圆球的构造函数 function Ball(radius, color) {     if(radius === undefined) { radius = 40; }     if(color === undefined) { color = "#ff0000"; }     this.x = 0;     this.y = 0;     this.radius = radius;     this.rotati

关于HTML5中Canvas的宽、高设置有关问题

关于HTML5中Canvas的宽.高设置问题 Canvas元素默认宽 300px, 高 150px, 设置其宽高可以使用如下方法:方法一:1 <canvas width="500" height="500"></canvas>方法二:使用HTML5 Canvas API操作 OK1 var canvas = document.getElementById('欲操作canvas的id');2 canvas.width = 500;3 canva

html5中canvas的一个简单的例子

买了两本关于HTML5的书,一本<HTML5揭秘>,一本<HTML5高级程序设计>,现在在看<html5揭秘>网上说这本书是非常入门的一本,<HTML5权威指南>就相对深一点.所以买了揭秘,没买指南.都说HTML5的canvas很重要,所以这里把书上关于canvas的一些简单例子,给试着自己写了一遍,放上来把  代码如下 复制代码 window.onload = function(){     var canvas = document.getElement

html5中canvas的使用 获取鼠标点击页面上某点的RGB

1.html5中的canvas在IE9中可以跑起来.在IE8则跑不起来,这时候就需要一些东西了. 我推荐这种方法,这样显得代码不乱. <!--[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> 需要谷歌的一个html5.js的文件即可. 注意:必须插入在<head></he

HTML5中Canvas(绘制)使用例子

Canvas中不仅可以画线(路径),还能画很多其他的图像,这一章就介绍Canvas的其他两种绘图API. 一.简单图形,整套的属性和方法专门用于绘制矩形: 1.fillStyle可以设置为CSS颜色.一个图案或一种颜色渐变.fillStyle默认是纯黑色,你可以设置成你喜欢的任意颜色.只要页面打开着,每个绘图上下文都会记录自己的属性,除非你重置过它. 2.fillRect(x,y,width,height)绘制一个矩形,并以当前的fillStyle来填充. 3.srtokeStyle和fillS

HTML5中Canvas标签的学习

HTML5 提供了画布(canvas)标签,通过与Javascript结合使用,可以在网页上绘制图像.Canvas是一个矩形区域,使用Javascript可以控制其每一个像素.本文将对canvas标签进行简要的学习. 1.canvas标签说明 canvas标签是一个矩形区域,它包含两个属性width和height,分别表示矩形区域的宽和高,这两个属性都是可选的,并且都可以通过css来设定,他们的默认值是300px和150px.canvas在网页中的形式如下: <canvas id="myC

html5使用canvas绘制时钟示例

准备工作 在HTML中指定一个区域放置时钟: <div id="clock" style="position: relative;"></div> 时钟的一些外观设定: var width = 260; // 桌布宽度 var height= 260; // 桌布高度 var dot = {     x : width / 2,     y : height / 2,     radius : 6 }; // 圆点位置.半径 var radi

HTML5中Canvas绘制曲线:圆、圆弧、贝塞尔曲线使用样例

绘制曲线有如下四个方法:arc().artTo().bezierCurveTo()和quadraticCurveTo(). 第一个比较简单,就是绘制一段圆弧.后面三个方法复杂一些,都需要定义控制点. 1,arc()绘制圆弧 圆弧就是圆上的一部分.要绘制圆弧必须确定:圆形的坐标.圆的半径.圆弧的起点角度和终点角度. 其中起点角度和终点角度都要用弧度表示,即常量pi的倍数(1pi是半圆,2pi是整个圆形). (1)下面使用arc()方法绘制一段圆弧: var canvas = document.ge

HTML5中Canvas的使用样例(图形增加鼠标点击、拖动交互)

Canvas是一种非保留性的绘图界面,即不会记录过去执行的绘图操作,而是保持最终结果(构成图像的彩色像素). 如果想让Canvas变得具有交互性,比如用户可以选择.拖动画布上的图形.那么我们必须记录绘制的每一个对象,才能在将来灵活的修改并重绘它们,实现交互. 1,鼠标点击选择图形对象 (1)下面样例中点击"添加圆圈"按钮可以在画布上增加位置.大小.颜色都是随机的圆圈. (2)点击"清空画布"按钮可以清除画布上所有圆圈. (3)鼠标点击任意圆圈,该圆圈会出现黑色边框,