O produto cruzado de dois vetores resulta em outro vetor.
É realizada em vetores em três dimensões, mas ainda tem relevância para a questão.
Estamos tentando resolver, o que é determinar qual a forma de virar-se para enfrentar um objeto em direção a outro.
Como você viu anteriormente, embora estejamos trabalhando com um ambiente bidimensional, ele
tem de fato uma terceira dimensão que está saindo da tela.
Dados os dois vetores V e W, o produto cruzado é definido desta forma.
Whoa.
Isso é um pouco assustador, certo?
Mas se você examiná-lo de perto, você verá porque ele é chamado de produto cruzado, pois multiplica cada componente dos
vetores com todos os outros componentes.
Vejamos as coisas assim.
A primeira parte é v ponto y multiplicado por w ponto z.
Isto é seguido pelos valores invertidos de v z multiplicados por w y.
Depois cruzamos v z com w x e depois v ponto x com w z.
Depois, finalmente v x com w, y e v.
Y.
Com w x.
O vencedor resultante é aquele que é perpendicular aos outros dois.
Agora, o interessante sobre o produto cruzado é que ele não é reversível.
V Cross W não é igual a Cross W.
V Na verdade, se você realizar a operação ao contrário, ainda será despejado.
Isso é perpendicular tanto ao V quanto ao W, mas estará voltado na outra direção e podemos explorar esse fato para determinar
de que forma nosso tanque deve girar.
Vamos dar uma olhada em um exemplo de como isto vai funcionar.
Aqui está o posicionamento do tanque e do combustível, semelhante ao exemplo com o qual estamos trabalhando
na Unidade e estes outros vetores para a direção dianteira e a direção em direção ao tanque.
O produto cruzado entre estes rendimentos é zero.
Zero.
-0. 7.
Agora, vejamos a situação quando o combustível está do outro lado.
Estes são os vetores relevantes e este é o produto cruzado 000. 7 ao determinar se fazemos uma volta no sentido anti-horário
ou no sentido horário.
A dica está nos resultados dos produtos cruzados.
Veja de perto os dois produtos cruzados.
Qual é a única diferença?
Você conseguiu resolver isso?
É a coordenada Z, no caso em que queremos girar no sentido horário.
A coordenada Z é um valor negativo.
No caso em que queremos girar no sentido anti-horário, o valor Z é um valor positivo.
Portanto, podemos deduzir que se o valor Z do produto cruzado for inferior a zero ou negativo, então vamos
fazer uma curva no sentido horário.
Caso contrário, se for um valor positivo maior que zero, então vamos fazer uma volta no sentido anti-horário.
Agora é hora de dar uma olhada em como isso funciona em nosso ambiente com nosso tanque.
Agora, você pode não ter prestado muita atenção nos ângulos que estavam sendo calculados antes.
Se enfrentarmos o combustível aqui e depois chegarmos à barra de espaço, você vai notar que também tornei meu vetor
verde um pouco mais longo, multiplicando-o por dez no código.
Portanto, estamos diante do combustível aqui.
Trata-se de um ângulo de dois.
Agora, se eu me viro e digo: "Olhe para aqui e pressione, agora eu tenho um ângulo de 23".
Bem, isso é ótimo.
Agora, se eu virar meu tanque para baixo aqui, então estou tentando ficar como outro ângulo e bater nele novamente.
Então isto é, você sabe, estou obtendo um ângulo de 24, mas digamos que era 23.
Como eu sei ou como este tanque, quando se torna um I personagem, sabe para que lado virar?
Vira desta maneira ou vira desta maneira para enfrentar o tanque?
Porque sempre que fazemos o cálculo do ângulo utilizando o produto DOT e nosso co-seno, obtemos sempre um ângulo
positivo.
Não vamos obter um ângulo negativo.
Agora, sim, a unidade fornece um método de ângulo assinado que vai resolver se é negativo ou não.
Mas o que realmente entra nisso?
Vamos usar o produto transversal, como acabamos de ver na teoria, para determinar
se temos uma volta no sentido horário ou anti-horário.
Certo.
Portanto, vamos voltar ao nosso código e vamos acrescentar outro método chamado Cross.
Portanto, este é o meu ângulo de cálculo.
Você verá que eu multipliquei o tanque para frente por dez para conseguir essa linha verde por mais tempo, se você quiser fazer isso também.
E eu o fiz em 5 segundos para que ele permaneça na tela por um pouco mais de tempo.
Portanto, aqui embaixo, vamos fazer uma cruz vazia.
Vamos passar por dois vetores.
Portanto, o vetor três é V e o vetor três.
O segundo é um W.
Agora, dentro daqui, vamos descobrir o que o produto cruzado está usando a fórmula para calcular
o produto cruzado, que é toda uma série de multiplicações e menos entre os valores X, Y e Z.
Portanto, este é o seu desafio.
Aqui está a fórmula.
Mais uma vez, o que eu gostaria que você fizesse é completar esta cruz.
Assim, ele realmente realiza um cálculo cruzado de produto aqui entre V e W, e o que eu quero que ele faça
não é devolver um vazio, mas devolver um vetor três.
Assim, esse vetor três vai lhe dar aquele vetor perpendicular que é perpendicular ao V e ao W quando eles estão
cruzados.
Então, faça uma pausa no vídeo.
Agora vá e experimente.
E quando voltarmos, eu passarei pela solução com você.
Bem-vindo de volta.
Como você foi resolvendo isso?
Certo.
Há muita matemática acontecendo aqui, então vamos fazer isso pouco a pouco.
Assim, criaremos um carro alegórico para nossa muda X e criaremos um para nosso carro alegórico para a muda Y e criaremos um
para nosso carro alegórico para a muda Z.
Certo.
Portanto, a muleta X vai se igualar agora da maneira que me lembro é se estiver calculando o
valor X, então está usando os valores Y e Z no cálculo.
Se for o Y moult, está usando o X e o Z no cálculo.
Portanto, ela não se utiliza no cálculo, se isso faz sentido.
Portanto, este será o Y multiplicado por Z menos V, ponto z multiplicado por w ponto y.
Portanto, o próximo será igual a tudo, menos y.
Então v ponto x multiplicado por w ponto z menos v ponto z multiplicado por w ponto x pegando-lhe o jeito.
E finalmente temos o x multiplicado por y menos o ponto y multiplicado por w x.
Certo.
Então, só temos que juntá-los.
Então retornamos x molt dentro, é claro, um novo vetor três, vetor três.
X, molt, y molt e z molt.
Certo.
Como você foi resolvendo isso?
Parece que me falta um parênteses, então é apenas uma questão de fazê-los passo a passo com qualquer uma destas equações
realmente complexas.
Quebre-os e faça apenas um pouco de cada vez.
Então vamos colocar isto para trabalhar aqui em cima.
Portanto, é o valor Z que estamos recuperando da cruz que é a parte importante do trabalho, seja
no sentido horário ou anti-horário.
Assim, criaremos um int para o sentido horário e o colocaremos em um.
E então vamos dizer aqui mesmo, se cruzarmos nosso tanque para frente e nossa direção de tanque ou nossa direção de combustível, eu deveria
dizer direção de combustível.
Portanto, se a cruz desses dois pontos Z for menor do que zero, então o relógio vai ser igual a menos um.
E então usaremos isto como um multiplicador para nosso ângulo de giro.
Então, para girar nosso tanque apenas automaticamente dentro deste método, vamos colocar este ponto transformar,
ponto girar.
Vamos girar ao redor do eixo Z, que é o eixo que sai da tela para este material 2D.
Portanto, zero zero e vamos girar por ângulo, que já calculamos multiplicado por f dot rad matemático dois
graus porque temos nossos ângulos voltando em radianos.
Mas esta rotação utiliza um valor em graus e vamos multiplicá-lo no sentido horário para que possamos girar de uma forma
ou de outra.
Ok, vamos experimentar isto para que possamos salvá-lo.
Volte para a unidade.
Agora, quando chegarmos à barra de espaço, nosso tanque vai girar automaticamente para olhar o combustível para nós.
E isto é como a própria base da criação desse olhar sobre o método que usamos anteriormente.
Então, vamos brincar com a imprensa.
Certo, então se eu bater na barra de espaço, meu tanque se encaixa ao redor para enfrentar o combustível.
Se eu dirigir até aqui e bater na barra de espaço, eu me agarro e encaro o combustível dessa maneira.
Está bem, fantástico.
Funciona muito bem.
Portanto, embora a Unidade tenha estes métodos que fazem isto automaticamente para você, se alguma vez
você se encontrar em um caso em que não tenha estes métodos disponíveis para você
ou algo não esteja funcionando exatamente bem, pelo menos agora você tem os fundamentos subjacentes a estes cálculos e agora
você sabe o que são o produto ponto e o produto cruzado e como eles são muito, muito úteis em jogos e eu especialmente com a navegação.