O que são vetores?
Vetores são conjuntos de coordenadas de dimensão variável. Cada coordenada em um vetor representa uma posição absoluta nessa direção do espaço em que o vetor está.
- Um vetor 1-D seria {1} . Pode ser, por exemplo, uma posição em X = 1. Ou um tempo t = 1.
- Um vetor 2D seria {-4,3} . Pode ser, por exemplo, uma posição em -4 no eixo X e 3 no eixo Y. Também pode ser a temperatura (3 graus) em uma posição (-4 metros) no eixo X.
- Um vetor 3D seria {1,2,3} . Essa pode ser uma posição no espaço 1 ao longo do eixo X, 2 no eixo Y e 3 no eixo Z. Ou pode ser 1 vermelho, 2 verde e 3 azul em uma cor. Ou, pode ser uma posição XY ( {1,2} ) em algum momento T ( {3} ).
Observe que, em todos os casos, atribuímos significado aos vetores para o nosso problema. Embora você encontre normalmente vetores sendo usados para geometria em jogos, não há razão para que você não possa fazer outra coisa com eles.
Por que eu uso vetores?
Primeiro, você nunca precisa usar vetores. Contanto que você esteja acompanhando xey, ou quaisquer coordenadas de sua preferência, de alguma forma você estará bem.
No entanto, a vantagem de usar vetores é que eles representam perfeitamente coisas como direção e posição e também possuem várias operações matemáticas definidas para facilitar sua vida.
Para um exemplo simples, considere o produto escalar .
Suponha que você tenha um sistema de radar em um jogo de cima para baixo. Todo inimigo que aparecer no setor do radar (algum pedaço em forma de torta em 2D) deve ter um pequeno ponto vermelho na tela. Então, você precisa descobrir quais são os inimigos na sua seção de radar.
Você pode testar se os inimigos estão dentro de um triângulo. Você também pode testar se os inimigos estão contidos na interseção dos dois meios espaços dos planos / linhas que definem os dois lados do setor de radar.
Ou você pode simplesmente usar um produto escalar para fazer a verificação. Aqui está como:
- Crie um vetor indo do centro do radar para a "frente do radar". Normalize-o.
- Crie um vetor indo do centro do radar para o objeto em que queremos verificar a visibilidade do radar. Normalize-o.
- Pegue o produto escalar dos dois vetores normalizados.
- Pegue a arccosina desse produto e verifique se ele tem menos da metade do ângulo da largura do radar. Se estiver, desenhe um pontinho.
Isso é muito útil e agora também permite que você tenha facilmente radares que apontam em direções diferentes (apenas altere o vetor para frente) e tenham larguras diferentes (apenas altere o ângulo da largura do radar) - e você também pode reutilizar o mesmo código para esses casos !
Por que mais eu uso vetores?
Se você estiver em 2D, talvez a melhor maneira de obter efeitos e movimentos complexos (rotação, redimensionamento etc.) seja usar um gráfico de cena. Um planeta tem uma nave em órbita, a nave tem um drone em órbita. O cálculo para isso sem usar a matemática vetorial é realmente muito feio.
Com a matemática vetorial, representamos cada uma como tendo um ponto e uma matriz de transformação 3x3. O planeta usa sua transformação, a nave usa sua transformação e a transformação do planeta, e o drone usa sua transformação e a transformação da nave e a transformação do planeta.
Quando o planeta se move, você muda sua transformação, e a nave e o drone são posicionados automaticamente "de graça". Código muito mais limpo.
Ainda não está convencido.
Os vetores também são a representação nativa de posição, geometria e movimento usada por quase todas as bibliotecas gráficas - e certamente pelo OpenGL e DirectX. Não é provável que você se afaste sem precisar usá-los.
Conclusão Os
vetores são uma ferramenta poderosa para escrever código claro que resolve problemas geométricos de maneira limpa e elegante.