Jump to content

getDistanceBetweenPoints2D


Alexs

Recommended Posts

@Alexs_Steel Que pagina usas para cosas matematicas? es decir cuando programas algo que nesecite matematicas.

Pues estos teoremas son sencillos, aunque la idea de reemplazar las funciones matemáticas por su forma de calculo me la dio @samt2497 hace varios meses.

Por otra parte, pasé algunos meses enfocado únicamente en LÖVE2D, donde no hay tanta disponibilidad de funciones y se requiere de librerías para estos calculos.

Link to comment
Se ve muy interesante es LÖVE2D, Haber si le hecho un tiempo de dedicación.

PD: Lo todavia mas exitante que se programa en LUA :twisted:

Tiene sus limitaciones. Utiliza OpenGL, por lo que para muchos usuarios es inaccesible en muchas de sus funciones (canvas, shaders), además de no estar siquiera en una version 1.0, por lo que carece de muchas funciones que uno podría requerir.

Link to comment
  • 6 months later...
  • Discord Moderators

Optimizar el código está bien y es un requisito indispensable para que sea de calidad, aunque creo que tampoco es bueno hacerlo ciegamente como alguno de por aquí pensará, aplicando en cada línea consejos que no optimizan el algoritmo como tal (donde normalmente más rendimiento se pierde).

Quizá esté claro que esa fórmula aplica Pitágoras (o bien su equivalente definición e interpretación geométrica de módulo de un vector), pero creo que todo el mundo la encontraría menos agradable a la vista que llamar a una función getDistanceBetweenPoints. Y eso sumado a un desarrollador inexperto, despistado y/o carente de conocimientos matemáticos puede generar más de un error de programación, especialmente cuando este tipo de optimizaciones se van acumulando.

"Es que se ejecuta el doble de rápido, y el código no se lee tan mal". Dicho así, tiene razón. ¿Por qué hacer algo relativamente mucho más lento si se puede hacer rápido y se puede entender sin gran dificultad? Pero hay que tener en cuenta la pérdida de legibilidad y compararla con el rendimiento ganado:

Supongamos que ciertos recursos usan esa función 1000 veces en cada cuadro (que son bastantes más veces de las que normalmente he visto), y que el juego se ejecuta a 10 FPS. Tomando tus propios datos, renderizar cada cuadro tardaría 100 milisegundos, de los cuales 0,00048 * 1000 = 0,48 ms se emplearían en llamar a esas funciones. Esos 0,48 ms, de reducirse a 0,4 ms (0,0004 * 1000) usando la mejor optimización que propones, supondrían un ahorro de 0,08 ms que se invertirían, a igualdad de otros factores, en que el juego se ejecutase ≈ 0,0080064 FPS más rápido (100 - 0,08 = 99,92 ms/cuadro; 1000 / 99,92 ≈ 10,0080064 cuadros en un segundo).

¿Merece entonces la pena hacer el código menos legible con tal de arañar centésimas de FPS en un caso práctico? Creo que la respuesta más sensata es que no, porque nadie notará el beneficio sino incluso el perjuicio causado a otra gente que vea tu código.

Si aún así alguien prefiere hacer optimizaciones de este tipo, que ahorran el tiempo que la luz tarda en recorrer en vacío la longitud de una ballena azul (30 metros), por mí pueden seguirlas haciendo, pero las razones para actuar así son más dogmáticas o de efecto placebo que otra cosa.

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...