Pular para o conteúdo principal

Destaque

Dia 277 a 279 - Matemática com Freya Holmer #1

    Aquilo de usar a Khan academy estava é me dando preguiça e desanimo, então resolvi aprender por vídeos.

Vetor 1D (isso é o mesmo que floats, ints...)

    Acho que ela falou disso apenas por introdução. ela falou disso por que as funções que ela citou tem relação com o 2D e o 3D.

Comprimento sempre positivo.
Direção por ser 1 ou -1 (ou 0).

sign(x) = direction (pode ser 1 ou -1)
abs(x) = comprimento (ou magnitude)

distance(a,b) = abs(b - a)

    Ela disse algo interessante, ela meio que relacionou que uma subtração é basicamente um tipo de soma, e que divisão é um tipo de multiplicação. Essa segunda é meio falha, já que para poder multiplicar você teria que dividir de qualquer forma.

34min de vídeo nisso 👀

Vetor 2D


adição de dois vetores 2D
    A adição é simples, independente da ordem vai dar o mesmo resultado.
subtração de dois vetores 2D
    A subtração, assim como em números comuns, a ordem vai influenciar o resultado, e o resultado é a diferença entre os dois vetores, pode se observar que os pontos em que acabam as linhas vermelhas tem o mesmo tamanho que a linha azul.

OBS: alias, vetores tem direção e comprimento, então se tratando de um vetor 2D, que tem apenas x e y, o que acontece é que ele começa em 0,0 e a direção dele na direção que a linha tiver apontando.

OBS: um vector2 não é necessariamente um vetor 2D é uma questão de interpretação e de como ele está sendo usado.

representação da direção de um vetor 2D
    A direção de um vetor 2D é basicamente o vetor normalizado, em 1D isso seria 1 ou -1, mas se tratando de 2D é como se tivesse um circulo de raio 1 e o vetor cortado, onde ele cruza com o circulo é a direção. (colocando de outra forma se tu converter o vetor 2D para que ele tenha o comprimento de 1, você terá a direção do mesmo)
OBS: no caso de um vetor menor que o comprimento de um, a versão normalizada do mesmo será, aumentada para ter o comprimento de 1.

    E se um vetor normalizado for multiplicado por um número, o comprimento desde novo vetor será igual ao numero pelo qual foi multiplicado.

comprimento de um vetor 2D
    Para calcular o comprimento basta usar o teorema de Pitágoras. modificando a equação para ela ficar mais conveniente ela fica assim:
Mas no Unity, não é preciso calcular isso basta usar o método magnitude.

    Para se obter a distância entre dois pontos 2D basta subtrair os dois e calcular o comprimento, e nesse caso a ordem da subtração não importa.
    Na Unity temos o método Vector2.Distance(a, b) e o calculo também pode ser feito como: (a -b).magnitude, que o resultado será o mesmo.

PS: caso, haja um caso onde a distancia seja, comparada muitas vezes, como em múltiplos objetos, em vez de usar a distancia, pode ser usado o numero antes de calcular a raiz quadrada, tem até um método que faz isso sqrmagnitude, mas nesse caso, caso queira comparar com outro número, esse numero teria que ser elevado ao quadrado, já que raiz quadrada e elevado ao quadrado são opostos.

Comentários