Added Espruino Rotating Cube as an App
parent
33c8079a97
commit
d284ffc246
|
|
@ -0,0 +1,58 @@
|
|||
// Draw a rotating cube wireframe...
|
||||
// X and Y rotation
|
||||
var rx = 0, ry = 0;
|
||||
|
||||
// draw a cube
|
||||
function draw() {
|
||||
var rcx=Math.cos(rx),
|
||||
rsx=Math.sin(rx),
|
||||
rcy=Math.cos(ry),
|
||||
rsy=Math.sin(ry);
|
||||
// Project 3D coordinates into 2D
|
||||
function p(x,y,z) {
|
||||
var t;
|
||||
t = x*rcy + z*rsy;
|
||||
z = z*rcy - x*rsy;
|
||||
x=t;
|
||||
t = y*rcx + z*rsx;
|
||||
z = z*rcx - y*rsx;
|
||||
y=t;
|
||||
z += 4;
|
||||
return [g.getWidth() * (0.5 + x/z), g.getHeight() * (0.5 + y/z)];
|
||||
}
|
||||
|
||||
var a;
|
||||
// draw a series of lines to make up our cube
|
||||
a = p(-1,-1,-1); g.moveTo(a[0],a[1]);
|
||||
a = p(1,-1,-1); g.lineTo(a[0],a[1]);
|
||||
a = p(1,1,-1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,1,-1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,-1,-1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,-1,1); g.moveTo(a[0],a[1]);
|
||||
a = p(1,-1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(1,1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,-1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,-1,-1); g.moveTo(a[0],a[1]);
|
||||
a = p(-1,-1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(1,-1,-1); g.moveTo(a[0],a[1]);
|
||||
a = p(1,-1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(1,1,-1); g.moveTo(a[0],a[1]);
|
||||
a = p(1,1,1); g.lineTo(a[0],a[1]);
|
||||
a = p(-1,1,-1); g.moveTo(a[0],a[1]);
|
||||
a = p(-1,1,1); g.lineTo(a[0],a[1]);
|
||||
}
|
||||
|
||||
// rotate and redraw the cube
|
||||
function step() {
|
||||
// rotate
|
||||
rx += 0.1;
|
||||
ry += 0.11;
|
||||
// draw
|
||||
g.clear();
|
||||
g.setColor(0xFFFF);
|
||||
draw();
|
||||
}
|
||||
|
||||
g.clear();
|
||||
setInterval(step,50);
|
||||
Loading…
Reference in New Issue