¿Dónde son útiles o útiles las matrices en el desarrollo de aplicaciones del mundo real?

Juegos de computadora.

En los gráficos por computadora, es común usar una matriz de 4 x 4 para almacenar la posición y orientación de cada objeto móvil. Cuando el objeto cambia de posición u orientación, la matriz se actualiza. La cámara virtual utilizada para representar las imágenes del juego también tiene una posición y orientación especificadas por una matriz de 4 x 4. A medida que se renderiza cada objeto, la matriz 4 x 4 del objeto se multiplica por el inverso de la matriz de la cámara. Luego, cada punto en la malla de triángulos (o cualquier primitivo que se use) que componen las superficies del objeto se multiplica por esta matriz. Esto transforma cada objeto desde su propio sistema de coordenadas local en las coordenadas globales del juego, y luego desde allí en el sistema de coordenadas local de la cámara. Las coordenadas locales de la cámara se multiplican por una matriz de proyección especial para calcular la ubicación 2D de cada punto en el objeto en la pantalla.

Los personajes flexibles como los humanos están controlados por toda una jerarquía de transformaciones. Hay una matriz de transformación para todo el personaje que establece la posición y orientación de alguna parte central del cuerpo (por ejemplo, el torso). Otra matriz proporciona la orientación de la parte superior del brazo con respecto al cuerpo, otra la orientación de la parte inferior del brazo con respecto a la parte superior del brazo, otra la orientación de la mano con respecto a la parte inferior del brazo y luego 3 matrices más para cada dedo. para permitir que la mano se mueva naturalmente. Para representar la punta de un dedo, su posición viene dada por el producto de todas las matrices a lo largo de la cadena: cuerpo, hombro, codo, muñeca y articulaciones de 3 dedos. Debido a que la matriz de hombro es el “padre” de todas las matrices en el resto del brazo, y se multiplica al representar todos los componentes del brazo, la actualización de solo la matriz de hombro hace que todo el brazo se mueva como una unidad.

En los lugares donde los huesos se encuentran (p. Ej., El codo) la piel real no es rígida, sino que cubre la articulación sea cual sea la orientación de los dos huesos. Esto se puede simular interpolando entre las dos matrices que controlan los dos huesos en varios pasos pequeños, utilizando las matrices interpoladas para controlar los vértices de la superficie de la piel cerca de la articulación para que la piel se doble suavemente.

Todas estas matrices se actualizan en cada cuadro, ya sea reproduciendo una animación o resolviendo algunas restricciones en el movimiento. Entonces, un videojuego en ejecución está actualizando miles de matrices cada cuadro (1/30 o 1/60 segundos), y está haciendo millones de multiplicaciones de la ubicación de un punto por una matriz durante el renderizado. Por lo tanto, es muy importante que la multiplicación matriz-matriz y la multiplicación matriz-vector sean lo más rápidas posible (generalmente con ayuda de hardware).

Además, algunas de las propiedades de las matrices son muy importantes para este proceso.

  • El efecto de multiplicar un punto por una secuencia de matrices es lo mismo que multiplicar todas las matrices juntas (en el orden correcto) primero, y luego multiplicar por el punto. Esto significa que, al renderizar, cada punto en cada objeto solo necesita multiplicarse por * una * matriz, lo que ahorra una enorme cantidad de tiempo.
  • Una transformación geométrica del tipo proporcionado por una multiplicación matricial es una transformación lineal en el sentido matemático. Esto significa que lo que era una línea recta entre dos puntos en 3D sigue siendo una línea recta en 2D en la pantalla. A su vez, esto significa que cuando se renderiza una malla de triángulos, solo necesita multiplicar los vértices del triángulo 3D por la matriz de transformación 4 x 4 para obtener las posiciones 2D de las esquinas de cada triángulo. Luego puede hacer interpolación 2D (que es más simple) para generar los bordes y los píxeles interiores de cada triángulo. (Esto solo funciona cuando la lente de la cámara (simulada) asigna líneas rectas a líneas rectas).
  • Una matriz que simplemente gira y traduce un objeto se llama ortonormal. Invertir una matriz ortonormal es más rápido y más preciso que la inversión de matriz completa, por lo que usamos el método especial cuando podemos.

Como puede ver, un programador de juegos encuentra matrices en todas partes. A veces, simplemente permanecen como matrices, a veces las convertimos a otras formas (buscar ángulos y cuaterniones de Euler) que pueden ser mejores para el control o la interpolación, pero estos se convierten nuevamente en matrices para renderizar. Comprender el álgebra matricial es importante para un programador de juegos.

Dave

¿Desarrollo de aplicaciones del mundo real, preguntas? Bueno.

  1. Reconocimiento de patrones.
  2. Busqueda de internet.
  3. Protección antivirus.
  4. Redes sociales.
  5. Computación cuántica.

Todo lo anterior requiere el uso de matrices, en particular, valores propios y vectores propios de matrices. Todas son aplicaciones de la vida real, excepto quizás la última, que todavía está en pañales (aunque eso debería hacer que sea aún más emocionante para ti estudiar matrices, siendo tan innovador).

Diviértete estudiando matrices. Y luego diviértete usándolos en tu código.

Para aclararlo más, puede leer este artículo: Técnicas espectrales gráficas en ciencias de la computación.

Siento tu dolor. Cuando enseñamos matrices, la mayoría de los ejemplos parecen un poco artificiales. Esto se debe a que son una representación matemática de un tipo de problema que ocurre en estudios de matemáticas posteriores (ver otras respuestas). Cuando los aprende por primera vez, es similar a aprender la gramática y la sintaxis de una construcción de lenguaje, y si deja de estudiar matemáticas, entonces parecen (y en efecto son) inútiles.

No creo que le ayude saber si realmente ayudan, ya que puede enfrentar el mismo problema con el tema en el que se usan, vea las respuestas a continuación

Para los matemáticos: son una taquigrafía elegante para expresar muchos tipos de modelos (los matemáticos construyen modelos matemáticos de cosas abstractas y del mundo real)

Como en todas partes en cualquier aplicación de gráficos. Para superficies lisas, transformaciones 3D (geometría, cámara y colocación de luces), renderizado, algunos materiales, etc.

Reed-Solomon y la mayoría de los otros códigos de corrección de errores manipulan matrices sobre los campos de Galois

More Interesting

¿Qué es un algoritmo de aproximación?

Cómo escribir un programa que calcule 'b' elevado a power 'n' usando solo suma e iteración

¿Qué es la teoría de Ramsey y cómo se relaciona con la informática?

Para un número binario [matemático] n [/ matemático], ¿cuál es la probabilidad de que los dígitos contengan 1 consecutivos? Por ejemplo, un número binario de 3 dígitos tiene 8 posibilidades, y 110, 011 y 111 son los 3 escenarios donde hay 1s consecutivos.

Dada la potencia computacional suficiente, ¿serían los objetivos de la mecánica del continuo tan complicados de lograr? Es decir, ¿sería matemáticamente más sencillo modelar sistemas de forma discreta que continua?

¿Qué importancia tiene, si es que lo es, la teoría de grupos y el álgebra abstracta para comprender la programación funcional?

¿Es importante tener una excelente comprensión de la informática teórica para convertirse en un mejor programador?

¿Están algunas de las máquinas en 'On Computable Numbers' (A. Turing 1936) buggy?

¿Cómo han afectado los métodos numéricos y la potencia informática en bruto a las matemáticas puras y la física teórica?

¿P es igual a DTIME (2 ^ n)?

Cómo detectar si el siguiente cuerpo de cierta longitud y altura que gira en un punto de anclaje toca una posición particular

¿Por qué el problema indecidible en las máquinas de Turing es interesante desde un sentido práctico?

¿Existe un algoritmo para fusionar dos árboles rojo-negros con una complejidad menor que O (n + m)?

Cómo derivar el mecanismo de conversión de convertir decimal a binario y viceversa

¿Qué importancia tiene UPTU para la universidad de informática de MNN en Allahabad?