Foros del Web » Creando para Internet » Flash y Actionscript »

Dibujar río y recorrerlo

Estas en el tema de Dibujar río y recorrerlo en el foro de Flash y Actionscript en Foros del Web. Hola, ya hace muchos años que dejé de usar actionscript, pero ahora necesito hacer algo: Necesito dibujar (mediante código) un río (1000 km), luego necesito ...
  #1 (permalink)  
Antiguo 12/06/2010, 17:15
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
Pregunta Dibujar río y recorrerlo

Hola, ya hace muchos años que dejé de usar actionscript, pero ahora necesito hacer algo:

Necesito dibujar (mediante código) un río (1000 km), luego necesito identificar puntos (ej.: km 200, km 500), también poder redibujar tramos (ej.: tramo de 300km ).



Lo que creo que se tiene que hacer es guardar el recorrido (los puntos y su configuración que dibujan las curvas y líneas) para después poder redibujar cierto tramo. Lo que no sé es cómo indentificar la longitud de una curva dibujada mediante código.

Necesito que me ayuden con ideas de cómo hacer esto; pero si fuera posible y antes de meterme a investigar sobre las nuevas características de las nuevas versiones de flash que permitan hacer esto, me gustaría delegar este trabajo a un experto actionscript/flash. Para los interesados en realizar este pequeño trabajo contactarme mediante mensaje privado.

Leo
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #2 (permalink)  
Antiguo 12/06/2010, 22:39
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Dibujar río y recorrerlo

Para empezar con lo quieres hacer te recomiendo que diseñes unas estructuras de datos de lo que vas a necesitar (solo si es que conoces de POO y ojala UML), mediante clases personlizadas, por ejemplo crear clases como "Rio", "Tramo", "Punto" (o utiliza la clase Point), o como las quieras llamar, de modo de mantener un orden en tu código.

Estas clases las asocias entre sí de manera lógica por ejemplo 1 Rio tiene uno o varios Tramo's, luego 1 Tramo tiene 2 Punto's, etc. Luego a estas clases le agregas sus atributos y metodos correspondientes, por ejemplo a Punto le puedes agregar "x" e "y" como atributos de coordenada, "km" para el kilometro que mostrará ese punto en particular y ademas agregarle un atributo para indicar cual punto representa dentro del Tramo "ubicación" (un punto final o inicial), a Tramo le puedes definir el atributo "longitud", etc. y asi con cada clase.

Otra cosa bien útil es definirle a cada clase un movieclip como atributo "mc" el cual represente el gráfico asociado a ese elemento, de modo que cuando dibujes un movieclip mediante actionscript luego se lo asignes al atributo "mc" y lo tengas referenciado para usos posteriores, por ejemplo dibujaste una linea llamada "tramo_mc" y esto la asignas al "mc" del objeto de tipo Tramo.

Luego cuando quieras guardar toda esa información que esta en memoria (la estructura de datos), tienes varias alternativas: generar xml con la estructura de los objetos que están enlazados y volcar el xml como salida o almacenarlo en bds, o también crear una cadena que almacene esa estructura separando mediante tokens los objetos y valores de sus atributos para luego almacenar donde quieras esa cadena, en fin... Por el metodo que optes para almacenar la información considera que después debes hacer la lectura desde el código al cargar los datos y determina que es mas conveniente.

Por otra parte respecto a "cómo indentificar la longitud de una curva dibujada mediante código", no comprendo mucho cual es la duda, porque como el gráfico del rio va a representar longitudes en kilometros, es cosa de tomar ambos puntos del tramo (inicial y final) y restar sus valores (longitud del tramo = ptoFinal-ptoInicial), o a lomejor tu duda es como llegar a graficar esos tramos, no lo se.

Mis saludos.
  #3 (permalink)  
Antiguo 12/06/2010, 23:48
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Dibujar río y recorrerlo

Hola gracias por responder, mi mayor problema está en cómo calcular la longitud de todo el río (por así decirlo), por ejemplo en el gráfico anterior me gustaría saber la longitud de toda la línea (que representa el río) y luego porder identificar el puntro central y luego cualquier otro punto para después poder volver a dibujar (resaltar) el tramo entre esos dos puntos. Si fueran líneas rectas todo sería sencillo con aplicar "pitágoras" a las líneas con ángulos no rectos se podría calcular, el problema es que no es así, el río puede dibujar curvas (y no necesiarmente segmentos de circunferencia, a lo que se podría aplicar un poco de trigonometría básica) que hace que se dificulte el cálculo de longitud.

La idea al final del trabajo es que: teniendo dibujado el río (swf), desde un panel de control (backend) se pueda crear segmentos (entre dos puntos), se solicitaría 2 datos, el punto inicial y el final (ej. punto_inicial:km 150, punto_final: km 230); luego todos estos datos importarlos a la película (mediante xml) y queden reflejados sobre el río como segmentos.

Y todo este asunto es para que el cliente cada que quiera agregar/modificar/eliminar un segmento no tenga que contactarse con uno para que yo lo haga, que sería más sencillo hacerlo pero a futuro más tedioso ya que tendría yo que ver cada pequeño cambio que se haga.
__________________
Si digo que soy mentiroso. ¿Lo soy?
  #4 (permalink)  
Antiguo 13/06/2010, 00:56
 
Fecha de Ingreso: febrero-2008
Mensajes: 78
Antigüedad: 16 años, 2 meses
Puntos: 2
Respuesta: Dibujar río y recorrerlo

(saber la longitud de toda la línea del río e identificar el punto central)

Ok, pero tengo algunas dudas primero,
1_ ¿Esto es para un rio en particular que debes dibujar o varios rios que quizá alguien mas va dibujar?
2_ ¿De donde obtienes los datos (puntos) del trazo completo que debiese tener un rio?, porque no creo que te estés guiando a partir una(s) imagenes(s) que te pasaron.

Independiente de como y donde obtengas los datos del trazo e independiente de que cada rio tiene un tramo:
3a_ ¿el trazo completo del rio esta compuesto de varios puntos que secuencialmente juntos muestran la forma del rio mediante rectas entre cada uno de estos puntos, quizá dando la impresión de mostrar curvas?
ó bien
3b_ ¿el trazo completo del rio esta compuesto de varios puntos, de modo que, de un punto a otro se traza una curva en lugar de una linea?

si es el caso 3a, entonces, para obtener el largo del trazo completo del rio debes hacer una sumatoria de las distancias que hay entre todos los puntos del trazo; esto significa que por ejemplo del punto_1 al punto_2 obtengas las distancia, luego del punto_2 al punto_3 obtengas las distancia tambíen, y asi sucesivamente hasta obtener todas las distancias y hacer las sumatoria que da como resultado la longitud. A partir de ese momento y con esa longitud puedes ver el trazo del rio (que tiene puntos en posiciones arbitrarias) como un trazo recto, por lo cual ya puedes calcular el punto medio entre inicio y fin (averigua sobre interpolate() y distance() para no hacer trabajo demas)
documentación (para as2) de las funciones interpolate() y distance():
http://www.adobe.com/livedocs/flash/...eom/Point.html
como ya notaras el punto medio al que me refiero aun no es el punto central que buscas porque esta calculado en "una recta imaginaria", pero a partir de el puedes localizar el punto mas cercano buscando en las coordenadas de los puntos reales que componen la linea y comparando.
  #5 (permalink)  
Antiguo 13/06/2010, 11:07
Avatar de luistar  
Fecha de Ingreso: marzo-2005
Ubicación: Argentina
Mensajes: 939
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Dibujar río y recorrerlo

La idea es poder dibujar cualquier río, en el futuro yo me encargaría de hacerlo, los datos del recorrido los armaría yo, y luego el cliente pueda trabajar sobre esos ríos marcando puntos y tramos arbitrarios.

El caso de dibujo es que el río no se compone de secuencia de puntos que entre ellos se pueda dibujar sólo rectas, sino también curvas (como en la imagen por debajo del río: una curva entre dos puntos). Dibujar curvas para poder dar más realismo al recorrido del río (un río con sólo rectas no se vería muy bien).

Creo al final va a ser más conveniente para mí dibujarlo todo a mano y cada cambio futuro dibujarlo a mano también.

Averiguaré más, gracias por las sugerencias y las urls.

Leo
__________________
Si digo que soy mentiroso. ¿Lo soy?

Etiquetas: curva, pluma
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 09:05.