Foros del Web » Programación para mayores de 30 ;) » Programación General »

¿Cómo compruebo...?

Estas en el tema de ¿Cómo compruebo...? en el foro de Programación General en Foros del Web. Armo una línea de 360 píxeles o lo que sea. Coloco X puntos cuya distancia con los contiguos es la misma. O sea la distancia ...
  #1 (permalink)  
Antiguo 12/06/2014, 22:41
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
¿Cómo compruebo...?

Armo una línea de 360 píxeles o lo que sea.

Coloco X puntos cuya distancia con los contiguos es la misma. O sea la distancia entre el punto 1 y 2 sería la misma que entre el 2 y el 3, y así sucesivamente. Aunque no necesariamente hay 3 puntos, hay X.

Si X es 7 o ciertos números, tengo un problema.

Yo quiero colocar un objeto en una de esas posiciones, y luego comprobar que el objeto está ahí.

Pos = 5;
// posiciones o puntos.
Margen = 360 / (Pos*2) + 20;
// el +20 es porque la línea empieza desde el píxel 20. Va desde 20 a 380.
PosDis = 360 / Pos;
// distancia entre las posiciones.
IA._x = Margen + PosDis * (Act-1);
// Act inicia como 1.

Bueno así coloco al objeto "IA". Como comprobación usé:
Si IA._x > 20

Evidentemente eso no comprueba que esté en la posición exacta.

Entonces probé esto:
N = (IA._x-Margen) / PosDis;
if (N == Math.floor(N)) {
}

Pero cuando Pos es 7 esto no sirve. O sea, el objeto se coloca en la posición 1, correctamente, pero cuando hace la comprobación dice que no está ahí. Es algo relacionado con números decimales y operaciones con tales.

Posteriormente probé esto:
N = (IA._x-Margen) / PosDis+1;
if (N == Math.floor(N)) {
}
...que tiene más sentido pero es lo mismo...

La idea en ese caso es despejar Act:
IA._x = Margen + PosDis * (Act-1)
IA._x - Margen = PosDis * (Act-1)
(IA._x - Margen)/PosDis = Act-1
(IA._x - Margen)/PosDis+1 = Act

¿Está bien?

He aquí los resultados:
Pos = 7
Margen = 45.7142857142857
PosDis = 51.4285714285714
N = 0.999722222222222
Act = 1

...

Ahora que pienso podría aproximar (redondear) N. Y si da 1 está bien.

¿Alguna otra idea?

Gracias.
  #2 (permalink)  
Antiguo 13/06/2014, 02:15
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: ¿Cómo compruebo...?

Cita:
Iniciado por Tachikomaia Ver Mensaje
Armo una línea de 360 píxeles o lo que sea.

Coloco X puntos cuya distancia con los contiguos es la misma. O sea la distancia entre el punto 1 y 2 sería la misma que entre el 2 y el 3, y así sucesivamente. Aunque no necesariamente hay 3 puntos, hay X.

Si X es 7 o ciertos números, tengo un problema.

Yo quiero colocar un objeto en una de esas posiciones, y luego comprobar que el objeto está ahí.
Si con X indicas la cantidad de posiciones, simplemente ten un array de dimensión X y cuando quieras poner un objeto en una posición marcas la posición en el array. Por ejemplo, quiero marcar que hay un objeto en la posición 3, pues cogería mi array al que le llamaremos "posiciones[]" y haría:

Código:
posiciones[3] = 1;
Para comprobar si hay algo en la posición 3 solo tendría que ver si tiene un 1 o un 0.

Código:
SI posicion[3] = 1 ENTONCES
    POSICION_OCUPADA
SINO
    POSICION_LIBRE
FIN_SI
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 13/06/2014, 22:28
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Cómo compruebo...?

En general intento usar pocas variables para hacer las cosas, pero la solución es muy buena =D

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:11.