20.5 C
Brasília
domingo, dezembro 22, 2024

matemática – Como expressar o movimento parabólico usando o tempo delta?


Estou tentando descobrir como expressar o movimento parabólico (y = x^2) usando tempo delta. Pensei em derivá-lo usando um diferencial como y' = 1/2 * x mas isso resulta em uma linha reta com uma inclinação de 1/2. Não estou familiarizado com o uso do tempo delta neste contexto e estou confuso sobre os diferentes métodos (Euler explícito, Euler implícito, and so on.). Para referência, já posso escrever uma função de movimento linear como y = 2 * x usando delta time em love2d. (love2 é apenas um exemplo. Qualquer coisa pode ser usada na resposta.)

perform love.load()
    screenWidth, screenHeight = love.graphics.getDimensions()

    circle = {
        x = screenWidth * 0.5,
        y = screenHeight * 0.5,
        radius = 10,
        dx = 100,
        dy = -200,
    }
finish

perform love.replace(dt)
    circle.x = circle.x + circle.dx * dt
    circle.y = circle.y + circle.dy * dt

    if circle.x - circle.radius < 0 or circle.x + circle.radius > screenWidth then
        circle.dx = -circle.dx
        circle.dy = -circle.dy
    finish
    circle.x = math.max(circle.radius, math.min(screenWidth - circle.radius, circle.x))

    if circle.y - circle.radius < 0 or circle.y + circle.radius > screenHeight then
        circle.dx = -circle.dx
        circle.dy = -circle.dy
    finish
    circle.y = math.max(circle.radius, math.min(screenHeight - circle.radius, circle.y))
finish

perform love.draw()
    love.graphics.circle("fill", circle.x, circle.y, circle.radius)
    love.graphics.print(string.format("x: %.1f, y: %.1f", circle.x, circle.y), 10, 10)
finish

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0SubscribersSubscribe
- Advertisement -spot_img

Latest Articles