No meu jogo, quando clico com o mouse no terreno em algum lugar, gostaria que o jogador disparasse uma flecha nessa posição de maneira parabólica.
A seta tem uma posição, aceleração e velocidade, todos usando vetores 3D. Eu olhei para a Trajetória de um artigo de projétil na wikipedia, mas não sei como aplicá-lo na minha situação, pois explica a matemática 2D. Eu queria saber se existe uma solução para vetores 3D? Algum bom recurso talvez relacionado à situação 3D?
projectile-physics
trajectory
usuario
fonte
fonte
Respostas:
Para expandir o comentário de Kylotan, você pode usar as fórmulas 2D em 3D. Supondo que Y esteja ativo:
calcule a posição do alvo no espaço X'Y'Z ', onde o eixo X' é paralelo à direção do vôo da seta, o eixo Y 'está para cima e Z' é perpendicular aos eixos X 'e Y'.
Depois de calcular X 'e Y', você pode converter novamente em espaço XYZ real
Exemplo
Um arqueiro está em (1,0,1). Ele quer disparar uma flecha para (4,0,5). Tomamos X 'como o vetor unitário (0,6, 0, 0,8), uma vez que aponta diretamente da fonte para o ponto de destino. Em seguida, consideramos Z '(-0,8, 0, 0,6) porque é uma perpendicular, mas como a seta não se move no eixo Z', a ignoraremos. Seu problema agora é descobrir como disparar uma flecha de (0,0) a (0,5) no espaço X'Y '.
.. faça cálculos 2D aqui. Observe que você provavelmente desejará funções paramétricas de X 'e Y' em termos de t , a variável de tempo.
Uma maneira de abstrair a conversão entre as duas coordenadas é usar uma matriz de transformação.
quando convertemos de X'Y'Z ' para XYZ , isso é simplesmente uma transformação linear reversa.
fonte