Perdóname si esto no se considera una pregunta real, pero es algo de lo que estoy realmente confundido.
Constantemente escucho a otros desarrolladores de juegos hablar sobre cómo el uso de vectores es muy útil, pero también sobre cómo a todos les intimidan las matemáticas vectoriales y los vectores pueden parecer desalentadores. Nunca he llegado a aprender sobre ellos.
Entonces, finalmente busqué Vector en Wikipedia, y me sorprendió. A menos que me equivoque de alguna manera, un vector (por simplicidad, digamos que es 2D), es solo una coordenada x e y. Si he entendido mal, corríjame.
Entonces, esta es mi pregunta: ¿no significa eso que cualquier representación de coordenadas de dos (o tres) dimensiones es un vector? Si es así, entonces los vectores y las coordenadas son lo mismo. Y es prácticamente imposible crear un juego sin usar coordenadas, entonces, ¿cómo son los vectores confusos o nuevos para alguien que ha realizado alguna cantidad de programación de juegos?
Esto es algo en lo que podría usar algunas aclaraciones. Cualquier ayuda es apreciada.
fuente
Respuestas:
¡No dejes que un matemático te escuche llamando puntos o coordenadas de Vectores!
Un vector 2D tiene un componente xey , no coordenadas. Los vectores no definen una posición, definen una dirección y una magnitud.
No puedo decirte por qué las personas se sienten intimidadas por ellas, probablemente la misma razón por la cual las matemáticas se sienten intimidadas en general, ¡porque todos dicen que es difícil antes de que sepan algo al respecto!
Los vectores y las coordenadas no son lo mismo. Se parecen, pero la forma en que se usan es muy diferente.
Las coordenadas definen una posición en el mundo. Los vectores definen una dirección y magnitud. Los dos a menudo se usan juntos. Como ejemplo:
Un personaje tiene una posición y una velocidad. La posición es una coordenada y la velocidad es un vector. Agregar la velocidad a la posición moverá al personaje en la dirección del vector a una distancia definida por la magnitud del vector (tenga en cuenta que la magnitud del vector es la velocidad, por lo que esto nos da una dirección y una velocidad).
O en este ejemplo:
Los dos personajes tienen posiciones y el disparo láser es un vector. Un vector entre las dos posiciones es (3,1). Eso significa que viaja +3 a lo largo del eje X y +1 a lo largo del eje Y. Donde la magnitud se puede encontrar con Sqrt ((X X) + (Y Y)).
Puede encontrar una buena descripción de las matemáticas vectoriales en el blog de Wolfire
fuente
Creo que el factor de intimidación puede surgir cuando comienzas a lidiar con operaciones más complicadas, como la normalización, los productos de puntos y cruzados, y el uso de múltiples sistemas de coordenadas con matrices para transformarse entre ellos. Estos no son necesariamente fáciles de entender al principio, incluso si tiene una geometría sólida y un fondo de álgebra.
Además, al menos en los EE. UU., Las personas que han pasado por la secuencia matemática típica de la escuela secundaria están acostumbradas a pensar en la geometría en términos de líneas, pendientes, ángulos, etc. Tienen que desaprender esas cosas en cierta medida y aprender a piénselo en términos de vectores y matrices en su lugar. No es que los conceptos de álgebra lineal sean tan extensos, sino que son un conjunto de conceptos algo diferente de los utilizados en geometría clásica, que las personas probablemente hayan aprendido en la escuela.
Por cierto, la distinción entre vectores y puntos radica en las operaciones que puede realizar en ellos. Aunque ambos están representados (en un sistema de coordenadas particular) por una lista de componentes y, por lo tanto, se ven "iguales", las operaciones permitidas no son las mismas. Por ejemplo, puede agregar dos vectores o multiplicar un vector por un escalar. No se puede hacer eso con puntos, o al menos, no tiene ningún sentido hacerlo. Pero puede restar dos puntos, y el resultado es un vector de un punto a otro. También puede agregar un punto a un vector para obtener un nuevo punto.
Los puntos y los vectores también se comportan de manera diferente con respecto a las transformaciones. A saber, los puntos están sujetos a traducción, mientras que los vectores no. Considere el ejemplo de un objeto que se mueve con una posición (punto) y una velocidad (vector); Si traslada el objeto a un lugar diferente, modifica su posición, pero no su velocidad.
De hecho, promoviendo esta línea de razonamiento, no hay solo vectores; Hay otras entidades como los covectores y los bivectores , que también pueden "parecerse" a un vector en términos de tener una lista de componentes en un sistema de coordenadas, pero que se comportan de manera diferente en términos de las operaciones disponibles y la forma en que reaccionan a las transformaciones. Todos estos pertenecen a un campo de las matemáticas llamado álgebra de Grassmann . Más allá de eso, uno puede ser aún más general y considerar el álgebra tensorial . Sin embargo, esto es algo avanzado.
fuente
Los vectores realmente no son tan malos. Solo hay un poco de matemática con la que la gente no está familiarizada.
En primer lugar, un Vector no representa una posición en el espacio. Esto es conceptualmente muy importante. Un vector representa una dirección, como 'Norte', y una magnitud. En un mapa con coordenadas matemáticas normales XY, 'Norte' sería el vector (0,1) (arriba en el eje Y). Esto no debe confundirse con la posición (0,1), que está una unidad arriba donde sea que coloque el origen. Un vector es una dirección y una magnitud .
El desplazamiento (movimiento) es un vector (como mover dos unidades hacia arriba y una unidad hacia la derecha), la posición no lo es.
Los vectores, en sí mismos, no son con lo que las personas tienen problemas. Por lo general, son matrices y operaciones en vectores.
Por ejemplo, si multiplica un Vector por una matriz especial llamada 'Matriz de rotación', entonces el vector gira por la cantidad especificada por la matriz. Además, algunas personas tienen problemas con la multiplicación de matrices. Búscalo si no estás familiarizado con él.
Además, puede 'apilar' estas matrices (u operaciones) juntas. Como Rotar 90 grados alrededor del eje X, luego Rotar 90 grados alrededor del eje Y. Si llamamos a la primera matriz M y a la segunda matriz N, entonces la operación sería v * M * N. Sin embargo, la multiplicación de matrices no es conmutativa, por lo que no es lo mismo que v * N * M.
En la programación de Gráficos, realiza operaciones considerablemente más complicadas en vectores y otras matrices regularmente. Transformaciones para FoV y para poner sus coordenadas en el espacio de la pantalla, etc. Realmente no es tan malo, pero puede ser intimidante para las personas nuevas.
fuente