Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como afrontar este "impedimento" en flash

Iniciado por Capiflash, 31 de Octubre de 2008, 12:25:01 AM

« anterior - próximo »

Capiflash

Bueno, me encuentro trabajando bajo un "guion", es decir, alguien paga y dice lo que quiere, y yo tenog que conseguir que exista xDDD
El problema viene siendo el siguiente, necesito pillar una imagen del mapa mundi, y dividir las partes "habitables" en N trozos, un ejemplo, cargar el mapa y crear 10000 "parcelas" terrestres. No hace falta que las parcelas se creen dinámicamente, puedo tenerlas "pre creadas", pero estoy algo acojonado. Como podria manejar esa cantidad de informacion?? Asi que se me ocurra, debería de guardar ptos de coordenadas especificando los vertices que componen cada parcela. LOL ! 10.000 parcelas, suponiendo que todas sean cuadradas ( algo que es imposible ) , me darían un total de 40.000 ptos a almacenar, y eso sólo para saber que forma tienen y donde estan xDDD
A ver si alguno se ha tenido que enfrentar a algo parecido, o no ha estado en esa situación pero se le ocurre como plantearlo, o la opción C, le digo que se vaya al carajo xDD

Saludos!

urkel

Todo depende del tiempo, el presupuesto y la colaboracion de la otra parte para que te proporcionen todos esos datos. Asi, sin tener idea, por el volumen de trabajo tan basto que explicas, calcularia que es un trabajo de minimo de 3 a 5 meses y un presupuesto de 4000€ a 8000€( todo esto contando con que ellos te proporcionarian toda la informacion necesaria, si tuvieras que hacerlo tu ya seria una salvajada)  si te ofrecen menos de eso elige la opcion C.

Buffon

todas las parcelas acaban rellenando la totalidad del globo ? por que se puede encontrar una estructura de datos muy óptima si es así.

En cambio, si cada parcela no se "interconecta" con el resto, necesitaras 40.000 puntos sí.

pero estructura de datos siempre encontrarás una óptima, entre otras cosas el precio del proyecto es pensarlo bien.

XÑA

Bueno, como sabrás el mundo se puede representar en un plano. De ese plano quitas el mar, y lo que te queda es 'el Area'. Entonces, así a lo basto, al tener una imagen 2D y un area donde elegir, dividiría el total de ese área entre 10.000 para saber qué le toca a cada trozo. Entonces vas haciendo un scanline y asignando esos puntos. El problema serán los bordes, porque te puedes encontrar que necesitas saltar de continente.

Evidentenment el scanline es para detectar el primer punto donde empezar. Una vez lo tengas, con un rnd decide cuanto tendrá de ancho, y lo que te falte lo pones de alto. Así te creará zonas que no serán uniformes :D

Capiflash

Gracias por las respuestas.
Buffon, si con interconexión entre parcelas te refieres a que se toquen, si, están conectadas.
Pillar la imagen en 2D y aplicarle lo que comenta XÑA me parecía lo más apropiado, pero los saltos de contienente son algo que de momento me hacen descartarlo. Igual podría solventarse permitiendo que no todas las parcelas tuviesen un mismo tamaño, podría fijar un mínimo de área por parcela, si al llegar a un borde el área que se iba a implantar ahí no cumple con el mínimo, pues que la colindante ocupe esa zona y la que está por colocar que salte de continente... no se si me explico.
Pero claro está, todo eso sería "pre construido", sería costoso de cara al cliente que con cada ejecución de la película se calculara todo esto, asi que estaría de nuevo en la necesidad de guardar la información referente a cada parcela para luego cargarla y dibujarla....para luego cargar la información relevante que quieren mostrar de cada parcela.... lol, Buffon, dijiste lo de estructura de datos óptima, iluminame!!

Saludos !!

rrbenx

Desde mi punto de vista yo creo que todo sería mejor que fuese "precompilado" y con tal volumen de información creo que el mayor problema viene en el tratamiento de las parcelas, por ejemplo si tuvieras que seleccionar una mediante las coordenadas en el mapa o las parcelas que atraviesa un camino entre dos puntos. También puedes hacer las parcelas de cualquier número de vértices siempre que sean polígonos cerrados.

Lo que haría para despues acceder a las parcelas y no tener que recorrerlas una a una es tener un array bidimensional donde cada celda represente un cuadrado en el mapa y que tendrá una lista con cada una de las parcelas que contengan al menos un vértice dentro del cuadrado en el mapa. Así teniendo solo unas coordenadas accederemos solo a las parcelas del cuadrado dentro de el cual se situen las coordenadas. También de cada parcela guardaria una lista a todas aquellas que son adyacentes, por si hay que calcular por qué parcelas pasa un camino entre dos puntos.

Para ahorrar espacio de almacenamiento, puedes almacenar todos los puntos por separado y en las parcelas alamacenar una lista ordenada con los índices de los puntos que componen esa parcela.

Si dieses mas datos de lo que tienes que hacer con las parcelas...
Tap or Die Juego Android Gratis!!
Dungeon break Juego Android Gratis!!
Organic Software
Blog

Capiflash

Cuatrero rr, si te soy sincero, no se que cojones quiere hacer este hombre con las parcelas XDD
Lo único que me ha dicho es lo ya comentado, dividir el mapa del mundo en parcelas, todas ellas seleccionables, y la posibilidad de añadir una descripción a cada una.... La finalidad de lo dicho no tengo ni pajolera, es bastante dificil tratar con alguien cuando piensa que eres 3 personas a la vez : desarrollador, inspector de hacienda y trepa, es decir, soy el que le va a desarrollar el engendro, se piensa que soy hacienda y quiero descubrirle la caja B, y encima, que quiero quitarle la idea/clientes... xDDD
Es algo para reflexionar la verdad, la mayoría de empresarios no necesitan desarrolladores, necesitan magos, los cuales sin datos desarrollen lo que ellos quieren.

Asi que lo de trazar caminos entre ellas queda descartado, pero seleccionarlas si que se pueden seleccionar...

Buffon

Cita de: cuatrero rr en 31 de Octubre de 2008, 12:28:19 PM
Desde mi punto de vista yo creo que todo sería mejor que fuese "precompilado" y con tal volumen de información creo que el mayor problema viene en el tratamiento de las parcelas, por ejemplo si tuvieras que seleccionar una mediante las coordenadas en el mapa o las parcelas que atraviesa un camino entre dos puntos. También puedes hacer las parcelas de cualquier número de vértices siempre que sean polígonos cerrados.

Lo que haría para despues acceder a las parcelas y no tener que recorrerlas una a una es tener un array bidimensional donde cada celda represente un cuadrado en el mapa y que tendrá una lista con cada una de las parcelas que contengan al menos un vértice dentro del cuadrado en el mapa. Así teniendo solo unas coordenadas accederemos solo a las parcelas del cuadrado dentro de el cual se situen las coordenadas. También de cada parcela guardaria una lista a todas aquellas que son adyacentes, por si hay que calcular por qué parcelas pasa un camino entre dos puntos.

Para ahorrar espacio de almacenamiento, puedes almacenar todos los puntos por separado y en las parcelas alamacenar una lista ordenada con los índices de los puntos que componen esa parcela.

Si dieses mas datos de lo que tienes que hacer con las parcelas...

cada parcela guarda información acerca de las adjacentes ? :S

considerando que un mapa se puede representar en un plano, si lo dividimos en 100 de alto y 100 de ancho, para tener 10000. sólo hemos de calcular el alto y ancho de la textura y tendremos.

alturaParcela = altoTextura / 100;
anchoParcela = anchoTextura/100;

esto significa que si quiero acceder a la parcela 7689 tendré que ir al punto.

7689 / 100 * alturaParcela + 7689%100 * anchoParcela

y tendré el primer vértice, sacar los vértices que forman su cuadrado es muy sencillo.

--------------

si tenemos el mundo dividido en 10000 regiones, cuantos bits necesitamos para codificar cada región a partir de su primer vértice ? 14

log10000/log2(calculadora) o log(base2)10000(calculadora cientifica)

Ahora hay que decidir como hacer el array.

Tenemos más terrenos que parcela ?

Array de X terrenos y cada terreno codifica en bits las parcelas que tiene, por ejemplo tiene la 134(00000010000110) y 135(00000010000111)

esto significa que tratas directamente los datos como en 14 bits y esa posicion del array tendría 0000001000011000000010000111

es decir guardas X parcelas * número de bits de media.

Tenemos más parcelas que terrenos

Array de X parcelas y cada parcela tiene un identificados del terreno al que pertenece.

RobiHm

Si simplemente necesita que se seleccionen yo simplemente permitiría que se pudiese hacer desde aproximadamente el centro de la "parcela" ya que a poco uniforme que sea siempre va a tener una zona central "anchita". Así te evitas tener que guardar cienmil puntos :X ya que simplemente guardas el centro que es "x" e "y" y calcular el área central seleccionable a partir de eso.



Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

Capiflash

El requerimiento es que sean seleccionables, y una vez seleccionada que se note su "area", es decir, que se resalte la forma que tenga esa parcela en el mapa...

RobiHm

Las zonas las puedes construir como un puzzle con piezas predeterminadas. Por lo que he visto los juegos de tablero suelen hacer las zonas así. O encajándolas o superponiéndolas.
Web : Indómita
Blog : MiBlog
Evobas : Evobas
Kobox : Kobox

Crea-X

Sinceramente y desde un punto de vista "práctico" ...

Dudo muchísimo que tu cliente realmente tenga 10.000 datos de información diferentes que mostrar a sus "target".
Y si fuera así, desde un punto de vista de "marketing" es una aberración, porque un visitante no creo que mire más de 7-8 parcelas en una visita.

Esta mal enfocado desde el principio.

Como desarrollador en multimedia también hay que saber decir o guiar al cliente y si se empeña en que quiere 10.000 parcelas le pides 5-6 millones de las antiguas pesetas a ver si lo sigue queriendo  ;)
Titus - Creativo Multimedia
Hoy hace un día genial.
Verás como viene alguien y lo jode!

Hechelion

Cita de: Crea-X en 11 de Noviembre de 2008, 10:21:07 PM
Sinceramente y desde un punto de vista "práctico" ...

Dudo muchísimo que tu cliente realmente tenga 10.000 datos de información diferentes que mostrar a sus "target".
Y si fuera así, desde un punto de vista de "marketing" es una aberración, porque un visitante no creo que mire más de 7-8 parcelas en una visita.

Esta mal enfocado desde el principio.

Como desarrollador en multimedia también hay que saber decir o guiar al cliente y si se empeña en que quiere 10.000 parcelas le pides 5-6 millones de las antiguas pesetas a ver si lo sigue queriendo  ;)

Puede que necesite las 10.000 parcelas para un conjunto de clientes y no es necesario que cada cliente tenga que revisar las mil parcelas. Por ejemplo, un antiguo programa que realice para llevar la trazabilidad de cultivos consistía en separar las zonas en parcelas, un cliente jamas tendra 10.000 parcelas, pero los 100 clientes del paking sumados si. En conclusión, sin saber para que quiere el programa no se puede dar un juicio ta categórico sobre si esta bien o mal enfocado.

Crea-X

Tienes razón Hechelion.

Puede tener esas 10.000 parcelas en una BD y mostrarlas según se demanden.

Yo lo que he interpretado es que se deben mostrar en un "mapamundi" y todas a la vez. Y desde ese punto de vista me parece que está mal planteado.

Si en cambio del mapamundi se hiciera un zoom a cada continente y luego a cada país, región, etc ... hasta las parcelas entonces estaría genial.

En ese caso, yo guardaría todos los datos previamente en una BD e iría mostrando según el continente seleccionado, región etc... Un trabajo de chinos, pero es la solución que yo haría.
Titus - Creativo Multimedia
Hoy hace un día genial.
Verás como viene alguien y lo jode!

rrbenx

#14
Cita de: Buffon en 31 de Octubre de 2008, 01:31:44 PM
Cita de: cuatrero rr en 31 de Octubre de 2008, 12:28:19 PM
Desde mi punto de vista yo creo que todo sería mejor que fuese "precompilado" y con tal volumen de información creo que el mayor problema viene en el tratamiento de las parcelas, por ejemplo si tuvieras que seleccionar una mediante las coordenadas en el mapa o las parcelas que atraviesa un camino entre dos puntos. También puedes hacer las parcelas de cualquier número de vértices siempre que sean polígonos cerrados.

Lo que haría para despues acceder a las parcelas y no tener que recorrerlas una a una es tener un array bidimensional donde cada celda represente un cuadrado en el mapa y que tendrá una lista con cada una de las parcelas que contengan al menos un vértice dentro del cuadrado en el mapa. Así teniendo solo unas coordenadas accederemos solo a las parcelas del cuadrado dentro de el cual se situen las coordenadas. También de cada parcela guardaria una lista a todas aquellas que son adyacentes, por si hay que calcular por qué parcelas pasa un camino entre dos puntos.

Para ahorrar espacio de almacenamiento, puedes almacenar todos los puntos por separado y en las parcelas alamacenar una lista ordenada con los índices de los puntos que componen esa parcela.

Si dieses mas datos de lo que tienes que hacer con las parcelas...

cada parcela guarda información acerca de las adjacentes ? :S

considerando que un mapa se puede representar en un plano, si lo dividimos en 100 de alto y 100 de ancho, para tener 10000. sólo hemos de calcular el alto y ancho de la textura y tendremos.

alturaParcela = altoTextura / 100;
anchoParcela = anchoTextura/100;

esto significa que si quiero acceder a la parcela 7689 tendré que ir al punto.

7689 / 100 * alturaParcela + 7689%100 * anchoParcela

y tendré el primer vértice, sacar los vértices que forman su cuadrado es muy sencillo.

--------------

si tenemos el mundo dividido en 10000 regiones, cuantos bits necesitamos para codificar cada región a partir de su primer vértice ? 14

log10000/log2(calculadora) o log(base2)10000(calculadora cientifica)

Ahora hay que decidir como hacer el array.

Tenemos más terrenos que parcela ?

Array de X terrenos y cada terreno codifica en bits las parcelas que tiene, por ejemplo tiene la 134(00000010000110) y 135(00000010000111)

esto significa que tratas directamente los datos como en 14 bits y esa posicion del array tendría 0000001000011000000010000111

es decir guardas X parcelas * número de bits de media.

Tenemos más parcelas que terrenos

Array de X parcelas y cada parcela tiene un identificados del terreno al que pertenece.

Mi respuesta presuponía que las parcelas NO fueran "cuadrados", sino polígonos cerrados y la información de las adyacentes sobre todo era para calcular las parcelas que atravesaba un camino.
Tap or Die Juego Android Gratis!!
Dungeon break Juego Android Gratis!!
Organic Software
Blog






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.