Sitio web de resúmenes de películas - Bellezas de anime - ¿Por qué la animación del lienzo se atasca en iOS? ¿Es un problema de escritura?

¿Por qué la animación del lienzo se atasca en iOS? ¿Es un problema de escritura?

Este es el código en js. Por favor echa un vistazo. ¿El código html es

var? número? =?200;

var? ¿w? =?window.innerWidth

var? h? =?window.innerHeight

var? Máx. =?100;

var? _¿incógnita? =?0;

var? _y? =?0;

var? _z? =?150;

var? dtr? =?función(d)? {

¿Volver? ¿d? *?matemáticas. ¿Pi? /?180;

};

var? ¿Y? =?función()? {

¿Volver? math . sin(math . floor(math . random()?*?360)?*?math.pi?/?180);

};

var? dist? =?Función(p1,?p2,?p3)? {

¿Volver? Math.sqrt(Math.pow(p2.x?-?p1.x,?2)?+?Math.pow(p2.y?-?p1.y,?2)?+?Math.pow(p2. z?-?p1.z,?2));

var? Tarjeta pequeña.

=?{

obj:? {

x:? _x,

y:? _y,

z:? _z

},

dest:? {

x:? 0,

y:? 0,

z:? 1

},

Distancia:? {

x:? 0,

y:? 0,

z:? 200

},

ang:? {

cavión:? 0,

avión:? 0,

cteta:? 0,

Papá Noel:? 0

},

Zoom:? 1,

Pantalla:? {

x:? ¿w? /?2,

y:? h? /?2,

z:? 0

},

actualizar:? función()? {

cam.dist.x? =?cam.dest.x? -?cam obj . x;

Área de cámara y? =?Cam Deste? -?camobj.y;

cam.dist.z? =?cam.dest.z? -?cam obj.z;

cam.ang.cplane? =?-cam.dist.z? /?Math.sqrt(cam.dist.x?*?cam.dist.x?+?cam.dist.z?*?cam . dist . z);

cam.ang.splane? =?cam.dist.x? /?Math.sqrt(cam.dist.x?*?cam.dist.x?+?cam.dist.z?*?cam . dist . z);

cam.ang.ctheta? =?Math.sqrt(cam.dist.x?*?cam.dist.x?+?cam.dist.z?*?cam.dist.z)? /?Math.sqrt(cam.dist.x?*?cam.dist.x?+?Cam área y?*?Cam área y?+?cam.dist.z?*?cam . dist . z);

cam.ang.stheta? =?-Cam Disch? /?Math.sqrt(cam.dist.x?*?cam.dist.x?+?Cam área y?*?Cam área y?+?cam.dist.z?*?cam . dist . z);

}

};

var? ¿trans? =?{

Partes:? {

sz:? función(p,?sz)? {

¿Volver? {

x:? p.x? *?sz.x,

y:? p.y? *?Ciudad de Shenzhen,

z:? p.z? *?Shenzhen

};

},

Fu:? {

x:? función(p,? podredumbre)? {

¿Volver? {

x:? p.x,

y:? p.y? *?Math.cos(dtr(rot.x))? -?p.z? *?Math.sin(dtr(rot.x)),

z:? p.y? *?Math.sin(dtr(rot.x))? +?p.z? *?Math.cos(dtr(rot.x))

};

},

y:? función(p,? podredumbre)? {

¿Volver? {

x:? p.x? *?Math.cos(dtr(rot.y))? +?p.z? *?Math.sin(dtr(rot.y)),

y:? p.y,

z:? -p.x? *?Math.sin(dtr(rot.y))? +?p.z? *?Matemáticas.c

os(dtr(rot.y))

};

},

z:? función(p,? podredumbre)? {

¿Volver? {

x:? p.x? *?Math.cos(dtr(rot.z))? -?p.y? *?Math.sin(dtr(rot.z)),

y:? p.x? *?Math.sin(dtr(rot.z))? +?p.y? *?Math.cos(dtr(rot.z)),

z:? pz

};

}

},

pos:? función(p, ?pos)? {

¿Volver? {

x:? p.x? +?Posición x,

y:? p.y? +?Posición y,

z:? p.z? +?Posición z

};

}

},

punto de vista:? {

Avión:? función(p)? {

¿Volver? {

x:? p.x? *?cam.ang.cavión? +?p.z? *?cam.ang.splane,

y:? p.y,

z:? p.x? *?-cam.ang.splane? +?p.z? *?cam.ang.cplane

};

},

θ:? función(p)? {

¿Volver? {

x:? p.x,

y:? p.y? *?cam.ang.ctheta? -?p.z? *?cam.ang.stheta,

z:? p.y? *?cam.ang.stheta? +?p.z? *?cam.ang.ctheta

};

},

Configuración:? función(p)? {

¿Volver? {

x:? p.x? -?cam.obj.x,

y:? p.y? -?cam.obj.y,

z:? p.z? -?cam.obj.z

};

}

},

Perspectiva:? función(p)? {

¿Volver? {

x:? p.x? *?cam.dist.z? /?p.z? *?cam.zoom,

y:? p.y? *?cam.dist.z? /?p.z? *?cam.zoom,

z:? p.z? *?cam.zoom,

p:? cam.dist.z? /?pz

};

},

Pantalla:? función(p, ?disp)? {

¿Volver? {

x:? p.x? +?disp.x,

y:? -¿Pye? +?Pantalla,

z:? p.z? +?Mostrar z,

p:? p.p

};

},

Pasos:? función (_obj_,? sz,? techo,? pos,? disp)? {

var? _argumentos? =?trans.parts.sz(_obj_,?SZ);

_args? =?trans.parts.rot.x(_args,?rot);

_args? =?trans.parts.rot.y(_args,?rot);

_args? =?trans.parts.rot.z(_args,?rot);

_args? =?trans.parts.pos(_args,?pos);

_args? =?trans . punto de vista . plano(_args);

_args? =?trans .

gs? =?trans . =?trans . =?trans.disp(_args,?disp);

¿Regresar? _ args

}

};

(Función()?{

"¿Uso? Estricto";

var? =? función (parámetro)? {

this.transIn?{};

/p>

this.transIn.vtx? param . vtx);

this.transIn.sz? =?(param . SZ);

this. transIn.rot? >

this.transIn.pos? =?(param . pos);

tresD .prototype.vupd? =? ?paso de transacción(

this.transIn.vtx,

this. transIn.sz,

this.transIn.rot,

this.transIn.pos,

visualización de cámara

);

p>

};

var?=?function()? {

¿Este.ville?=?0.04;

Esto, Lin ? =?360;

este.diff? =?200;

this.initPos? =?_ x;

¿Este juguete? =?_ y;

this . /p>

Build.prototype.go? =? function()? {

Este.canvas? =?document.getelementbyid("canv");

Esto. canvas.width

Este.Canvas.Height? =?window.innerHeight

Esto. $?=?canv. >Este .globalCompositeOperation?=?"source-end";

this.varr?=?[];

this.dist?=?[];

this.calc?=?[];

¿Para qué? (var?i?=?0,?lane.

=?núm? ¿I? <? len? yo++)? {

este . add();

}

¿Este rotObj? =?{

x:? 0,

y:? 0,

z:? 0

};

este.objSz? =?{

x:? ¿w? /?5,

y:? h? /?5,

z:? ¿w? /?五

};

};

¿Crear.prototipo.agregar? =?función()? {

this.varr.push(new?tresD({

vtx:?{

x:?rnd(),

y:?rnd(),

z:?rnd()

},

sz:? y:? 0,

z:?

x:?20,

y: -20,

z:?

pos: ? {

x:?*?Math.sin(360?*?Math.random()?*?Math.Pi?/?180),

y:? this.diff? *? Math.sin (360? *? Math. aleatorio ()? *? Math. Pi? /? 180), ? *?Math.Pi?/?180)

}

}));

this.calc.push({

x:?360?*?Math.random(),

y:?360?*?Math.random(),

z:?360?*?Math.random() ()

});

};

¿Construir.prototipo.upd? =?función()? {

cam.obj.x? +=?(this.toX?-?cam.obj.x)? *?0.05;

cam.obj.y? +=?(this.toY?-?cam.obj.y)? *?0.05;

};

¿Construir.prototipo.dibujar? =?Función()? {

Esto. $.clearRect(0, 0,?this.canvas.width,?this.canvas.height);

cam.upd();

this.rotObj.x? +=?0.1;

este.rotObj.y? +=?0.1;

este.rotObj.z? +=?0.1;

¿Para qué? (var?i?=?0;?i?<?this.varr.length;?i++)? {

¿Para qué? (var? var. en? this.calc[i])? {

¿Y si? (este.calc[i].

tieneOwnProperty(val))? {

¿este.calc[i][val]? +=?this.vel

¿Si? (este.calc[i][val)? >? esto.lim)? this.calc[i][val]? =?0;

}

}

this.varr[i].transIn.pos? =?{

x:? esta.diferencia? *?Math.cos(this.calc[i]). ¿incógnita? *?matemáticas. ¿Pi? /?180),

y:? esta.diferencia? *?Math.sin(this.calc[i]). ¿y? *?matemáticas. ¿Pi? /?180),

z:? esta.diferencia? *?Math.sin(this.calc[i]). z? *?matemáticas. ¿Pi? /?180)

};

this.varr[i].transIn.rot? =?this.rotObj

this.varr[i].transIn.sz? =?this.objSz

this.varr[i]. vupd();

¿Si? (this.varr[i].transOut.p?<?0)?Continuar;

var? ¿gramo? =?Esto. $.createradialgradient(this . varr[I]. transout . x,?this.varr[i].transOut.y?this.varr[i].transOut.p,?this.varr[i].transOut.x, ? this.varr[i].transOut.y? this.varr[i].transOut.p? *?2);

Esto. $.globalCompositeOperation? =?Más claro';

g.addColorStop(0,hsla(255,?255%,?255%,?1)');

g.addColorStop(.5, ?HSLA('?+?(I?+?2)?+?',85%,?40%,1)');

g.addColorStop(1,?HSLA('?+ ?(一)? +?',85%,?40%,.5)');

Esto. $.fillStyle? =?g;

Esto. $.begin ruta();

Esto. $.arc(this.varr[i].transOut.x,?this.varr[i].transOut.y?this.varr[i].transOut.p?*?2,?0,?Math.Pi? *?2,?false);

Esto. $.fill();

Esto.

$.close path();

}

};

¿Construir.prototype.anim? =?Función()? {

ventana.requestAnimationFrame? =?(función()?{

Return?window.requestAnimationFrame?||

Función(devolución de llamada,?elemento)?{

ventana.setTimeout( devolución de llamada,? 1000?/?60);

};

})();

var? ¿dibujos animados? =?Función()? {

esta actualización();

esta .draw();

ventana requestanimationframe(anim); bind(this);

ventana . requestanimationframe(anim);

};

Build.prototype.run? =?Función()? {

este . anim();

ventana . addevent listener(' mousemove ',? Función (e)? {

Esto. ¿Toxicología?= ? (e.clientX?-?This.Canvas.Width?/?2)?*?-0.8;

¿Este juguete? =?(e.clientY?-?This.Canvas.Height?/? 2)?*?0.8;

}.bind(this));

ventana addevent listener(' touch move ',? function(e)?{

¿Si? (event.cancelable)? {

¿Si? (!event.defaultPrevented)? {

evento predeterminado();

}

¿Esta.toxicidad? =?(e.touches[0])?-?este.canvas.width?-0.8;

¿Este juguete? =?(e.toca[0]).

¿cliente? -? ¿Esta.altura.del.lienzo? /?2)?*?0.8;

}.binding(this));

ventana .addevent oyente(' mousedown ',? function(e)?{

¿Para qué? (var?i?=?0;?i?<?100;?i++)? {

esto . add();

}

}.bind(this));

ventana .addevent listener(' touch start ',? function(e)?{

if? (event. cancelable)? {

Si? (!event.defaultPrevented)? }

¿Para qué? (var?i?=?0;?i?<?100;?i++)? {

esto add();

}

}.bind(this));

};

var? aplicación? =?¿Nuevo? build();

aplicación . ejecutar();

})();

ventana addevent ('cambiar tamaño',? función()? {

¿Ancho del lienzo? =?window.innerWidth

¿Lienzo? =?window.innerHeight

},?