5 votos

Simple pregunta sobre rejilla

Yo debería ser capaz de averiguar esto, pero mi cerebro no está cooperando conmigo. Decir que tengo una cuadrícula de 5x5, con cada celda de la cuadrícula numerada de 0 a 24, que va de izquierda a derecha. Dado un número de células, tales como 17, ¿cómo puedo determinar que la célula coordenadas x e y? He sido capaz de hacerlo viceversa, donde si se dan las coordenadas puedo calcular el número de células:

$Cell number=x+y*width$

(Las coordenadas x e y representan el punto superior izquierdo de cada celda)

Pero ahora quiero el de enfrente. Alguna idea?

2voto

Gudmundur Orn Puntos 853

Imagínese que usted está escribiendo el número en la base (longitud o anchura). Así que aquí, queremos escribir el número en la base 5. 17 puede ser escrito como $(32)_5$. Pero entonces esto es todo lo que necesitamos, como dice esto es en la 3ª fila, 2ª columna.

La idea es que nuestro índice de' va por el 5 por cada fila que se vaya hacia abajo. Por lo que 1 será la parte superior izquierda de la plaza, 1 + 5 = 6 será la plaza de abajo, y así sucesivamente. Pero esto tiene una notación conveniente base-5. 1 se escribe como $(01)_5$ en base 5, y 6 se escribe como $(11)_5$ en base 5 (ahora me deja el subíndice de decirle a la base). De esta manera, podemos ver que el primer dígito indica que la fila en la que estamos, y el segundo dígito indica qué columna. Así que 11, que está escrito como $(21)_5$, está por debajo de $(11)_5 = 6$ y a la izquierda de $(12)_5 = 7$.

Este es en realidad el mismo proceso como la otra respuesta, pero tiene el beneficio adicional de tener toda la singularidad de los argumentos que van junto con las bases. Y creo que la representación es muy lindo.

1voto

meinzlein Puntos 26

mohabitar, la ecuación para la determinación de cell_number de x=columna y y=fila, funciona si se define la primera fila = 0 y la primera columna = 0 Y definir el sistema de coordenadas tal que y aumenta a la derecha y x aumenta hacia abajo (o células 0-4 en la fila inferior y trabajo).

Acuerdo con el sistema de referencia que se implica, se puede extraer de x y de y de cell_number de la siguiente manera:

y = INT(cell_number/ancho)

x = MOD(cell_number/ancho)

donde INT(z) devuelve el mayor valor entero que es igual a o menor que z; y MOD(z) devuelve el módulo de z, que se define como (z - INT(z)).

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