Jump to content

Para que sirven estos 'math'


Anzo

Recommended Posts

Para qué sirven estos math y para qué se pueden usar?

math.atan2 
math.rad 
math.cos 

No entiendo mucho el inglés (lo que dice en el manual de lua de math.atan,math.rad y math.cos, si entiendo lo que dice, pero aún no me queda claro en que momento usarlo :/) así que si alguien sabe para que sirven y en que se podrían usar, sería de mucha ayuda si lo postean.

Me entro curiosidad saber para que sirven por que las vi en un script y no entendí nada.

Link to comment

Ya busque eso, pero no entendí mucho que digamos. Pondré la parte de un script que usa esos math para ver si alguien sabe y me puede explicar para que los uso xD.

addEventHandler("onClientPedDamage", getRootElement(), 
function(attacker) 
    -- attacker == getLocalPlayer() because setElementVelocity is synced with server 
    if(attacker and attacked ~= source and attacker == getLocalPlayer())then 
        local aPosX, aPosY, aPosZ = getElementPosition(attacker) 
        local sPosX, sPosY, sPosZ = getElementPosition(source) 
        local angle = math.atan2(aPosX - sPosX, aPosY - sPosY) - math.rad(90) 
        local velX, velY, velZ = getElementVelocity(source) 
        setElementVelocity(source, velX + power*-math.cos(angle), velY + power*math.sin(angle), velZ + powerUp) 
    end 
end) 

Ese es un script que vi en un post, lo que hace es mandar a volar a un ped si lo golpeas, pero para qué uso math.rad ,math.atan2, y los otros math que están ahí? no era más fácil solo usar setElementVelocity(x,y+15,z+0.5)?

Link to comment

Ya busque eso, pero no entendí mucho que digamos. Pondré la parte de un script que usa esos math para ver si alguien sabe y me puede explicar para que los uso xD.

addEventHandler("onClientPedDamage", getRootElement(), 
function(attacker) 
    -- attacker == getLocalPlayer() because setElementVelocity is synced with server 
    if(attacker and attacked ~= source and attacker == getLocalPlayer())then 
        local aPosX, aPosY, aPosZ = getElementPosition(attacker) 
        local sPosX, sPosY, sPosZ = getElementPosition(source) 
        local angle = math.atan2(aPosX - sPosX, aPosY - sPosY) - math.rad(90) 
        local velX, velY, velZ = getElementVelocity(source) 
        setElementVelocity(source, velX + power*-math.cos(angle), velY + power*math.sin(angle), velZ + powerUp) 
    end 
end) 

Ese es un script que vi en un post, lo que hace es mandar a volar a un ped si lo golpeas, pero para qué uso math.rad ,math.atan2, y los otros math que están ahí? no era más fácil solo usar setElementVelocity(x,y+15,z+0.5)?

¿Sabes que es trigonometria? Esos math sirven para obtener funciones trigonometricas.

Link to comment

Ya busque eso, pero no entendí mucho que digamos. Pondré la parte de un script que usa esos math para ver si alguien sabe y me puede explicar para que los uso xD.

addEventHandler("onClientPedDamage", getRootElement(), 
function(attacker) 
    -- attacker == getLocalPlayer() because setElementVelocity is synced with server 
    if(attacker and attacked ~= source and attacker == getLocalPlayer())then 
        local aPosX, aPosY, aPosZ = getElementPosition(attacker) 
        local sPosX, sPosY, sPosZ = getElementPosition(source) 
        local angle = math.atan2(aPosX - sPosX, aPosY - sPosY) - math.rad(90) 
        local velX, velY, velZ = getElementVelocity(source) 
        setElementVelocity(source, velX + power*-math.cos(angle), velY + power*math.sin(angle), velZ + powerUp) 
    end 
end) 

Ese es un script que vi en un post, lo que hace es mandar a volar a un ped si lo golpeas, pero para qué uso math.rad ,math.atan2, y los otros math que están ahí? no era más fácil solo usar setElementVelocity(x,y+15,z+0.5)?

¿Sabes que es trigonometria? Esos math sirven para obtener funciones trigonometricas.

No, no sé que es trigonometria. Creo que he escuchado esa palabra antes pero no le preste atención.

Link to comment
math.atan2 se refiere a arco tangente o tangente inversa

math.rad es para pasar de grados a radianes

math.cos es para obtener el coseno de un ángulo

Por lo demás, mejor agarra un libro de matemática, aritmética, trigonometria, geometría y quizás uno de geometría descriptiva, quizás te ayude bastante.

¿Tenes alguno que aportar?

Link to comment

Para programar este tipo de cosas hay que tener buena base matemática, no es algo que aprendas en 1 día. Yo tarde varios días en calibrar un radar y contando que tengo toda la base necesaria para resolver problemas trigonométricos. Para mi no hay limite de edad para programar, pero para algunas aplicaciones necesitas conocimientos mínimos en ciertas ciencias.

Link to comment
  • Recently Browsing   0 members

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