Acabo de aprender javascript y encontré un fragmento de código javascript para implementar la rotación 3D. No lo entiendo en la parte del texto. Deje que un experto lo explique.
lt; script type="text/javascript"gt;
var dimensión = 1, a = 0, b = 0, i = 27 ;
//dibuja 27 " "s en la página
while (i--) document.write('lt;b id="l' i '"gt; lt ;/bgt;');
//Esta función se utiliza para ubicar 27 " " en la página, ajustar el color de fuente, etc.
función f()
{
i = 0;
// Puedes pensar en x, y y z como 27 " " números tridimensionales, y el siguiente bucle triple los calculará. ellos en secuencia La posición y el estado de visualización de
for (x = - dimensión; x lt; = dimensión; x = dimensión)
for (y = -dimensión; y lt; = dimensión; y = dimensión)
for (z = -dimensión; z lt; = dimensión; z = dimensión)
{
/*-- Esta parte del bucle es la parte matemática y no tiene nada que ver con el JavaScript en sí--*/
/*--En cualquier caso, determina las coordenadas del bucle " " en función de la posición del mouse (a, b)----
/*--En cualquier caso, las " " coordenadas del bucle se determinan en función de la posición del mouse (a, b)-- */
u = x;
v = y;
w = z
u2 = u * Math.cos(a) - v * Math.sin(a);
v2 = u * Math.sin(a) v * Math.cos(b);
u = v = v2; ; w = w2;
/*------------------------------------ -------------- --------*/
//La variable c se usa para establecer el color de " ", dependiendo del color de " ".
El color de " " cambiará según su profundidad (w) (entre 0 y 255)
var c = Math.round((w 2) * 70);
if (c lt; 0) c = 0;
if (c gt; 255 ) c = 255
// Aquí se explica cómo establecer la posición de " " (izquierda, top) y la fuente (color, tamaño de fuente)
s = document.
s.style = document.getElementById('l' i).style
s.style = document.getElementById('l' i).style;
s.style = document.getElementById('l' i).
s.left = 300 u * (w 2) * 50;
s.top = 300 v * (w 2) * 50;
s.color = 'rgb(' c ', ' c', 0)';
s.fontSize = (w 2) * 16 'px';
/* Los usuarios de Digg omitieron la clasificación en profundidad, así que aquí está. */
// El orden de " " se establece nuevamente aquí para garantizar que el " " más superficial se muestre primero
s.zIndex = Math.round((w 2) * 10);
i ;
}
}
}
/* Utilice el temporizador en lugar de onmousemove Los controladores desperdician tiempo de CPU pero hacen que las animaciones sean más fluidas. */
//Finalmente configura un temporizador para posicionar " " cada 17 milisegundos (y no volver a dibujar inmediatamente después de mover el mouse)
setInterval('f()', 17); /p>
l
lt;/scriptgt;
lt;/bodygt;
lt;/htmlgt;