squadron


Direct Link

Source code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>squadron - Interactive DHTML art-demos</title>
<meta name="Author" content="Gerard Ferrandez at http://www.dhteumeuleu.com">
<meta http-equiv="imagetoolbar" content="no">
<style type="text/css">
html {
overflow: hidden;
}
body {
margin: 0px;
padding: 0px;
background: #111;
position: absolute;
width: 100%;
height: 100%;
}
#screen {
position: absolute;
left: 0%;
top: 0%;
width: 100%;
height: 100%;
background: #fff;
overflow: hidden;
}
#canvasImages {
visibility: hidden;
}
#matrixImages {
visibility: hidden;
}
</style>
<script type="text/javascript" src="library/imgRotate.js"></script>
<script type="text/javascript">
// =====================================================================
// script written by Gerard Ferrandez
// http://www.dhteumeuleu.com
// ===================================================
// IE DXTransform version - February 2004
// Firefox/Opera <canvas> version - July 2006
// uses imgRotate.js mini-library
// =====================================================================
//
var xm = 0;
var ym = 0;
var nx = 0;
var ny = 0;
var nw = 0;
var nh = 0;
function resize() {
var scr = document.getElementById("screen");
nx = scr.offsetLeft;
ny = scr.offsetTop;
nw = scr.offsetWidth;
nh = scr.offsetHeight;
canvas.resize(nw, nh);
gridResize();
}
onresize = resize;
document.onmousemove = function(e) {
if (window.event) e=window.event;
xm = (e.x || e.clientX) - nx;
ym = (e.y || e.clientY) - ny;
}
////////////////////////
var Nx = 6;
var Ny = 4;
var A = .4;
////////////////////////
var o = [];
var N = Nx * Ny;
var ok = false;
obZ = function(img) {
this.x = 0;
this.y = 0;
this.O = createImage(img, "nearest");
}
function gridResize() {
if(ok){
var k = 0;
var Xn = nw / Nx;
var Yn = nh / Ny;
for(var i=0;i<Nx;i++){
for(var j=0;j<Ny;j++){
var p = o[k++];
p.x = i * Xn + Xn / 2;
p.y = j * Yn + Yn / 2;
}
}
}
}
function mainloop() {
if (isCanvas) context.clearRect(0, 0, nw, nh);
var i = 0, p;
while (p = o[i++]) {
var ang = Math.atan2(ym - p.y, xm - p.x);
p.O.drawImage(p.x, p.y, ang + A, 1);
}
}
onload = function() {
/* ==== create Canvas container ==== */
canvas = createCanvas(document.getElementById("screen"));
/* ==== initial size ===== */
resize();
xm = nx + nw / 2;
ym = ny + nh / 5;
/* ==== create structure ==== */
for (var i=0; i<N; i++) o[i] = new obZ(0);
ok = true;
resize();
setInterval(mainloop, 16);
}
</script>
</head>
<body>
<div id="screen"></div>
<div id="canvasImages">
<img alt="0" src="../images/CAMR81O9.png">
</div>
<div id="matrixImages">
<img alt="0" src="../images/CAMR81O9.gif">
</div>
</body>
</html>

Tagged with:
 

Feed updates subscription

Enter your email address:

Delivered by FeedBurner

Donate

Want to give me some extra encouragement ?

License

Creative Commons License

Except where otherwise noted, all Javascript code on this site is licensed under a Creative Commons License.