fire-pixel/pixeljs-master/index.php

156 lines
4.2 KiB
PHP
Raw Normal View History

2026-02-08 16:39:20 +00:00
<!DOCTYPE HTML>
<html>
<head>
<style>
canvas {
border: 1px solid #9C9898;
}
html, body {
margin: 0px;
padding: 0px;
width: 100%;
height: 100%;
margin: 0px;
background: #222;
}
.container {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
}
</style>
<script src="kinetic-v3.10.5.js"></script>
<script src="img/ninja.js"></script>
<script>
var w = window.innerWidth-2;
var h = window.innerHeight-4;
function to2d(coordx, coordy, coordz, grados, gradosa) {
var numeropi = 3.141592;
var x=(coordx)*Math.cos((numeropi/180)*grados)-(coordz)*Math.sin((numeropi/180)*grados);
var z1=(coordx)*Math.sin((numeropi/180)*grados)+(coordz)*Math.cos((numeropi/180)*grados);
var y=(coordy)*Math.cos((numeropi/180)*gradosa)-(z1)*Math.sin((numeropi/180)*gradosa);
var z=(coordy)*Math.sin((numeropi/180)*gradosa)+(z1)*Math.cos((numeropi/180)*gradosa);
var d = 10000;
var p = {'x': 0, 'y' : 0, 'z' : 1};
p.x = ((d*x)/(d+z));
p.y = ((d*y)/(d+z));
p.z = z;
return p;
}
window.onload = function() {
var stage = new Kinetic.Stage({
container: "container",
width: w,
height: h
});
var layer = new Kinetic.Layer();
var layerBck = new Kinetic.Layer();
var xRandom = Math.random() * w * 0.8 + 0.1 * w;
var yRandom = Math.random() * h * 0.8 + 0.1 * h;
var background = new Kinetic.Rect({
x: 0,
y: 0,
offset: {
x: 0,
y: 0
},
width: w,
height: h,
fill: "white",
stroke: "white",
strokeWidth: 0
});
layerBck.add(background);
var l = img_coord.length;
for(var n = 0; n < l; n++) {( function() {
var randX = img_coord[n][0];
var randY = img_coord[n][1];
var randZ = ( Math.random() * 200 ) - 100;
var box = new Kinetic.Rect({
x3d: randX,
y3d: randY,
z3d: randZ,
zIndex:1,
offset: {
x: 5,
y: 5
},
width: 8,
height: 8,
fill: img_color[n],
stroke: img_color[n],
strokeWidth: 0
});
layer.add(box);
}());
}
stage.add(layerBck);
stage.add(layer);
stage.onFrame(function(frame) {
});
stage.start();
stage.on("mousemove", function(evt){
var mouse = stage.getUserPosition(evt);
var boxes = layer.getChildren();
zi = new Array();
var bl = boxes.length;
boxes[0].setZIndex(1);
for(var n = 0; n < bl; n++) {
var shape = boxes[n];
var constk = 0.25;
var coord = to2d(shape.attrs.x3d, shape.attrs.y3d, shape.attrs.z3d, constk*(mouse.x-xRandom), constk*(mouse.y-yRandom));
shape.attrs.x = (w/2) + coord.x;
shape.attrs.y = (h/2) + coord.y;
shape.attrs.z = -coord.z;
coord.z = 1 + (shape.attrs.z3d - coord.z) * 0.008
if(coord.z<0.3) {
coord.z = 0.3;
}
if(coord.z>4) {
coord.z = 4;
}
shape.attrs.scale.x = coord.z;
shape.attrs.scale.y = coord.z;
for(var i = (n-1);i>0;i--) {
if(boxes[i].attrs.z>shape.attrs.z) {
shape.moveDown();
break;
}
}
}
layer.draw();
});
};
</script>
</head>
<body onmousedown="return false;">
<div id="container" class="container"></div>
</body>
</html>