Jump to content

Como fazer um Look At na rotação Z?


Recommended Posts

  • Moderators
Posted (edited)

Olá senhores.

Bom, estou precisando fazer um objeto apontar para outro como se ele estivesse fazendo um Look At. Mas não sei como calcular o ângulo da rotação Z com base nas posições.

Exemplo.

Objeto A está na posição 0, 0, 0.
Objeto B está na posição 1, 1, 0.

Ilustrações:

Spoiler

 

uP6hQiHETgyryv6aRZI3qQ.png

9gJoM8m3R3Sc6dMXp1Q9hA.png

7_AGSCYMTAmhURCRpyT_rg.png


Aplicando o Look At no Objeto A para o B, deve fazer o objeto A "mirar" no Objeto B, colocando a rotação Z do objeto A em 315.

Mas como calculo isso?

Obs: A rotação é com base nas posições, não importa a rotação do objB.

Edited by Lord Henry

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted (edited)

Não acredito que não vi essa função. Estava me quebrando todo para descobrir como fazer isso. Eu já tinha descoberto que precisava trabalhar com tangente mas estava com problemas para converter o valor obtido em graus. Eu só havia feito isso até então:

function lookAt (theSource, target)
	if isElement (theSource) and isElement (target) then
		local px, py = getElementPosition (theSource)
		local tx, ty = getElementPosition (target)
		local relatedAngle = math.atan2 (px - tx, py - ty)
		if (relatedAngle < 0) then
			relatedAngle = relatedAngle + 360
		elseif (relatedAngle > 360) then
			relatedAngle = relatedAngle - 360
		end
		return math.floor(relatedAngle)
	end
end

Preciso voltar a estudar mais a Wiki.

Muito obrigado.

Edited by Lord Henry
  • Like 1

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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