Grazie, siccome stavo già lavorando per accogliere, sperando di averli ben compresi, i vostri suggerimenti, ho pensato di semplificare il tutto togliendo il new e anche la funzione, e creando il div anzichè l'img.
Ora è tutto molto più compatto e spero anche più chiaro, funziona bene però surriscalda la cpu sempre allo stesso modo.
codice:<html> <head> </head> <body id='box0'> <script language="JavaScript" type="text/javascript"> <!-- var deltatop = deltaleft = 0; var vel_vert = -3; // Velocità verticale iniziale var vel_hor = 3; // Velocità orizzontale iniziale document.write('<div id = "orbitante" style="width: 8px; background: #777; height: 8px; top: 200px; left: 300px; position: absolute"><div></div></div>'); document.write('<div id = "nucleo" style="width: 20px; background: #000; height: 20px; top: 290px; left: 490px; position: absolute"></div>'); traccia = document.getElementById('orbitante') nucleo_x = 500; nucleo_y = 300; dist_base = 7000; coeff = 100; movimento(); function movimento() { var lt = parseInt(orbitante.style.left); var ot = parseInt(orbitante.style.top); var d2 = Math.max((nucleo_y - ot)*(nucleo_y-ot)+(nucleo_x-lt)*(nucleo_x-lt),dist_base) vel_vert += coeff*(nucleo_y - ot)/d2; deltatop += vel_vert; nuovtop = ot + Math.floor(deltatop); orbitante.style.top = nuovtop; deltatop = deltatop - Math.floor(deltatop); vel_hor += coeff*(nucleo_x-lt)/d2; deltaleft += vel_hor; nuovleft = lt + Math.floor(deltaleft); orbitante.style.left = nuovleft ; deltaleft = deltaleft - Math.floor(deltaleft); // traccia = document.getElementById('box0').appendChild(document.createElement('div')); traccia.style.position = 'absolute'; traccia.style.width = '8px'; traccia.style.height = '8px'; traccia.style.background = '#777' traccia.style.left = nuovleft; traccia.style.top = nuovtop; setTimeout('movimento()',10); } //--> </script> </body> </html>

Rispondi quotando
Ho voluto provare perchè lo scritto è molto bello. Per evitare di creare un numero abnorme di nodi div non ho trovato di meglio che fare questo
