Jump to content

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


Recommended Posts

  • Other Languages Moderators

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
Link to comment
  • Other Languages Moderators

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
Link to comment

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...