General math (Español)
Esta pagina lista una serie de funciones matematicas utiles para la programación de un juego. Generalmente son cortas, simples y optimas.
-- Hace un promedio entre una cantidad de ángulos arbitraria, en radianes.
function math.averageAngles(...)
local x,y = 0,0
for i=1,select('#',...) do local a= select(i,...) x, y = x+math.cos(a), y+math.sin(a) end
return math.atan2(y, x)
end
-- Devuelve la distancia entre dos puntos.
function math.dist(x1,y1, x2,y2) return ((x2-x1)^2+(y2-y1)^2)^0.5 end
-- Devuelve la distancia entre dos puntos en 3D.
function math.dist(x1,y1,z1, x2,y2,z2) return ((x2-x1)^2+(y2-y1)^2+(z2-z1)^2)^0.5 end
-- Devuelve el ángulo entre dos vectores asumiendo que tienen el mismo origen.
function math.angle(x1,y1, x2,y2) return math.atan2(y2-y1, x2-x1) end
-- Devuelve el multiplo de 'tamaño' más cercano (Si no pones nada, 'tamaño' sera 10).
function math.multiple(n, tamaño) tamaño = tamaño or 10 return math.round(n/tamaño)*tamaño end
-- Fija a un número entre un cierto rango.
function math.clamp(low, n, high) return math.min(math.max(low, n), high) end
-- Hace una interpolación lineal entre dos números.
function lerp(a,b,t) return (1-t)*a + t*b end
function lerp2(a,b,t) return a+(b-a)*t end
-- Have una interpolación del coseno entre dos números.
function cerp(a,b,t) local f=(1-math.cos(t*math.pi))*.5 return a*(1-f)+b*f end
-- Normaliza dos números.
function math.normalize(x,y) local l=(x*x+y*y)^.5 if l==0 then return 0,0,0 else return x/l,y/l,l end end
-- Devuelve 'n' redondeada a el 'deci' más cercano.
function math.round(n, deci) deci = 10^(deci or 0) return math.floor(n*deci+.5)/deci end
-- Alatoriamente devuelve -1 r 1.
function math.rsign() return love.math.random(2) == 2 and 1 or -1 end
-- Devuelve 1 si el número es positivo, -1 si es negativo, o 0 si es 0.
function math.sign(n) return n>0 and 1 or n<0 and -1 or 0 end
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info