从一个QQ群友那儿偷来的js图形 ^_^
<script type="text/javascript">
var head=document.createElement("HEAD");
document.documentElement.appendChild(head);
var title=document.createElement("TITLE");
head.appendChild(title);
var text=document.createTextNode("HTML5 Canvas Demo");
title.appendChild(text);
var b = document.createElement("BODY");
document.documentElement.appendChild(b);
var c=document.createElement("CANVAS");
var node=document.createTextNode("your browser does not support the canvas tag");
var img=document.createElement("IMG");
c.appendChild(node);
b.appendChild(c);
c.id="myCanvas";
c.width="600";
c.height="600";
c.style.border="3px solid #FF0000";
var FPS = 1000;
var FRAME_MSEC = 1000 / FPS >> 0;
var center_X = 300;
var center_Y = 300;
var max = 300; var $ = c.getContext("2d"); c.onmousedown = function(e){
b.appendChild(img);
var url = c.toDataURL();
img.src=url;
}
var n = 0;
setInterval(intervalHandler, FRAME_MSEC);
function intervalHandler() {
$.clearRect(0, 0, 600, 600);
var prevX = center_X;
var prevY = center_Y;
for (var i = 0; i < max; i++) {
$.beginPath();
$.lineWidth = 1;
$.strokeStyle = getColorHSV(i / max * 360 + n * 4000);
$.moveTo(prevX, prevY);
$.lineTo(
prevX = center_X + (i * Math.cos(i + (i * n))), //prevX, prevY values will change structures
prevY = center_Y + (i * Math.sin(i + (i * n))));
$.stroke();
}
n += .00025; //spin & transform speed control }
function getColorHSV(h) { //color scheme.
var ht = (((h %= 360) < 0) ? h + 360 : h) / 60;
var hi = Math.floor(ht);
var r, g, b;
var m = Math.round; switch (hi) {
case 0:
r = 0xff;
g = m(0xff * (ht - hi));
b = 0;
break;
case 1:
g = 0xff;
r = m(0xff * (1 - (ht - hi)));
b = 0;
break;
case 2:
g = 0xff;
b = m(0xff * (ht - hi));
r = 0;
break;
case 3:
b = 0xff;
g = m(0xff * (1 - (ht - hi)));
r = 0;
break;
case 4:
b = 0xff;
r = m(0xff * (ht - hi));
g = 0;
break;
case 5:
r = 0xff;
b = m(0xff * (1 - (ht - hi)));
g = 0;
break;
}
return "rgb(" + r + ", " + g + ", " + b + ")"; }
</script>
直接保存为xx.html文件,双击用浏览器打开,结果为一个不断旋转的动态图,示例请点开链接
http://fb.xin3e.com/jsgraph/canvans.html
结果截图如下

已经过作者同意……
随机推荐
- Java关键字native、volatile、transient
native native是方法修饰符.Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法.一般用于JNI中. native关键字说明其修饰的方法是一个原生态方法,方 ...
- HDU 4251 The Famous ICPC Team Again 主席树
The Famous ICPC Team Again Problem Description When Mr. B, Mr. G and Mr. M were preparing for the ...
- Codeforces Round #329 (Div. 2) D. Happy Tree Party LCA/树链剖分
D. Happy Tree Party Bogdan has a birthday today and mom gave him a tree consisting of n vertecie ...
- iOS 钥匙串 指纹识别 get和Post请求的区别
01-钥匙串 1. 通过系统提供的钥匙串功能可以在本地保存密码,系统使用AES的方式对密码加密 a. 查看Safari中保存的密码 2. 使用第三方框架SSKeychain把密码保存到钥匙串和获取钥匙 ...
- Sublime text追踪函数插件:ctags 和php代码格式化
转自:http://blog.csdn.net/zm2714/article/details/8076077 这两天一直纠结两款编辑器——eclipse和sublime Text. eclipse的p ...
- Js图片切换
<!DOCTYPE html><html<head> <meta charset="UTF-8"> <title></t ...
- Asp.Net Mvc 控制器与视图的数据传递
数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业务层获得一些数据,怎么传递到视图中,让视图显示在客户端呢?带着这些疑问,我们接着看.. 下面 ...
- 《DSP using MATLAB》示例Example5.1
终于看到第5章了,继续努力,加油!!! 代码: xn = [0, 1, 2, 3]; N =4; Xk = dfs(xn,N) 用到的dfs函数: function [Xk] = dfs(xn,N) ...
- 《DSP using MATLAB》示例Example4.12
上代码: b = [0, 1, 1]; a = [1, -0.9, 0.81]; % [R, p, C] = residuez(b,a); Mp = (abs(p))' Ap = (angle(p)) ...
- .Net 连接Oracle 数据库写法
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...