6 votos

Lo que es una forma natural para enumerar las simetrías de un cubo?

Quiero definir un etiquetado, por pequeños números naturales, de los 48 simetrías de un cubo - transformaciones afines que no cambie el volumen que ocupa. ¿Qué es un sencillo/natural/estéticamente agradable manera de hacer esto?

Aquí están algunos hechos que podrían restringir la mejor el problema:

  • Sería bueno si la identidad es el número 0.

  • Sería agradable si "normales" (por ejemplo, rotaciones sobre una cara centrada en el eje) había números más pequeños.

  • Sería bueno si los dígitos de la numeración se había significado en la base 2 (un ejemplo sería si $i \bmod 2$ indicó que si la transformación de $i$ era un reflejo), o de lo contrario le dio sentido a las operaciones aritméticas sobre ellos.

  • En el correspondiente sistema de coordenadas, el cubo está alineado al eje y tiene las esquinas opuestas $(0,0,0)$$(d,d,d)$.

  • Esto va a ser implementado en un programa de ordenador, y las simetrías son finalmente va a ser utilizado en la forma de un precalculadas tabla de puntos y vectores de la base, así que la mejor forma sería una función de la simetría, un número, un punto de transformar, y $d$.

    (En caso de que sea interesante: estoy trabajando con el eje alineado a los voxels, es decir, $\mathbb{Z}^3$ en lugar de $\mathbb{R}^3$. Ángulos no rectos son, por tanto, completamente irrelevante para esta parte de mi trabajo.)

  • Sería bueno si cada simetría tiene sólo un número, pero no es absolutamente necesario.

No estoy muy familiarizada con la teoría de grupos; menos aún lo son la mayoría de la gente que va a ser el uso de esta numeración.

[Por favor, mejorar las etiquetas en esta pregunta si usted ve ajuste; sólo he imitado similares preguntas.]

5voto

Jonik Puntos 7937

Voy a describir un sistema natural (llamado jefe de la serie para la algebraists en los aleros) para enumerar las simetrías del cubo (y casualmente, al mismo tiempo simetrías de otros objetos relacionados). El final tiene un código para aplicar las simetrías.

Necesito dos concesiones: algunos valores no utilizados (bits 2,3 no pueden ser 1), y que realmente se aplique la transformación, más que la representan como una gran matriz. La primera parte no es la gran cosa ya que solo bucle i en {0,1}, j más de {0,1}, entonces k más de {0,1,...,11} y el uso de 32*i + 16*j + k. La segunda parte debe también ser no es gran cosa, como escribir la matriz es aproximadamente el mismo que la aplicación de la transformación en tres de las esquinas del cubo.

Ahora la descripción de la numeración:

Los números de 0 a 3 se utilizan para el Klein cuatro del grupo que consta de 180 grados de rotación. Sugiero:

  • 0 es la matriz identidad
  • 1 es el plano XY rotación de 180 grados, (x,y,z) → (d−x,d−y,z)
  • 2 es el plano YZ rotación de 180 grados, (x,y,z) → (x,d−a,d−z)
  • 3 es el plano XZ rotación de 180 grados, (x,y,z) → (d−x,y,d−z)

La composición de estas simetrías es simplemente XOR.

Los números del 4 al 11 se utilizan para las 120 grados de rotación de la tetraedro sentado en el interior del cubo. En otras palabras, tomar una "diagonal principal" de el cubo, y giran a su alrededor. Tiene 3 ejes de simetría, de 120 grados de rotación. Tomando la diagonal de (0,0,0) a (d,d,d) se obtiene una particularmente fácil de transformación: (x,y,z) → (y,z,x). En cualquier caso, de la 4 a la 7 son hacer que 120 grados de rotación y, a continuación, hacer la rotación de 180 grados de 0 a 3. 8 a 11 hacer que 120 rotación de dos veces, por lo que (x,y,z) → (z,x,y), y, a continuación, la rotación de 180 grados de 0 a 3. La composición es una molestia (agregar el alto nibble mod 3, pero tomar uno de los aperitivos y el uso que se arremolina la baja nibble).

Los números del 16 al 27 se utiliza para la rotación de las simetrías del cubo que cambiar el interior de tetraedros. Esto también es muy fácil de describir como una transformación: si el bit 8 se establece, a continuación, aplicar la rotación se obtiene mediante la celebración de enfrente de los bordes verticales del cubo y girar 180: (x,y,z) → (y,x,d,−z).

Los números 32 a 43 y 48 a 59 se utilizan para el reflectiva simetrías del cubo (el primer lote de ser simetrías de los dos tetraedros, y el segundo lote de intercambio de dos tetraedros). Me gusta usar las coordenadas de intercambio de las dos primeras coordenadas: x,y,z) → (y,x,z).

Aquí es real código de buena ole javascript para hacerlo:

applySymmetry = function( which, d, x, y, z ) {
   var t;
   // Peel off the "are we a reflection?" bit
   if( which & 32 ) { t=x; x=y; y=t; }
   // Peel off the "do we swap the tetrahedrons?" bit
   if( which & 16 ) { t=x; x=y; y=t; z=d-z; }
   // Now we are in tetrahedral group, peel off the "120-ness"
   switch( (which & (4+8) ) >> 2 ) {
     case 0: break;
     case 1: t=x; x=y; y=z; z=t; break;
     case 2: t=z; z=y; y=x; x=t; break;
     case 3: alert('Not cool dude'); break;
   }
   // Now we are in the Klein four group, peel off the "180-ness"
   switch( which & (1+2) ) {
     case 0: break;
     case 1: x=d-x; y=d-y; break;
     case 2: y=d-y; z=d-z; break;
     case 3: z=d-z; x=d-x; break;
   }
   return [x,y,z];
}

applyAllSymmetries = function( d, x, y, z ) { // return the orbit
  var i, j, k, ret;
  ret = [];
  for( i = 0 ; i < 2 ; i++ ) {
    for( j = 0 ; j < 2 ; j++ ) {
      for( k = 0 ; k < 12 ; k++ ) {
         ret.push( applySymmetry( 32*i+16*j+k, d, x, y, z ) );
      }
    }
  }
  return ret;
}

Este código está pensado para exhibir el jefe de la serie. Usted podría optimizar el applySymmetry función de la combinación de la manipulación de los bits de 16 y 32, y se podría optimizar applyAllSymmetries mediante el uso de un "pie en el grafo de Cayley" (en lugar de utilizar coset representantes como estoy).

También se puede intercambiar el orden de los bits 4 y 5 si quería centrarse en el "tetraedro frente cubo" en lugar de "rotación frente a la reflexión".

1voto

Xetius Puntos 10445

No es sensato "etiquetado, por pequeños números naturales" (aparte de los de Jack, que es bastante razonable!)

Deje $(e,f)$ ser una orientada al aire de vértices adyacentes. Cada rotación de fijación del cubo está totalmente determinado por la imagen del par ordenado $(e,f)$, y cada afín simétrica es determinado por la imagen de $(e,f)$ y su determinante, que es $1$ o $-1$.

Esto proporciona una manera muy natural de etiquetado de los elementos del grupo.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X