elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Cómo logro que las flechas queden del tamaño que quiero?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo logro que las flechas queden del tamaño que quiero?  (Leído 3,193 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.217


Superhacker (es broma xD )


Ver Perfil
¿Cómo logro que las flechas queden del tamaño que quiero?
« en: 3 Enero 2024, 08:32 am »

La siguiente función se aplica en distintos sitios del programa, pero no creo que el problema esté fuera de ella, creo que el problema es la altura asignada a la flecha y cómo Flash la aplica:
Código
  1. function InsertarNodo () {
  2. Imagenes = Imagenes+1;
  3. Nodos = Nodos+1;
  4. Grafo.attachMovie("mNodo", "Nodo"+Nodos, Imagenes);
  5. // Especificar la situación que representa:
  6. set ("Grafo.Nodo"+Nodos+".EnHP", EnHP);
  7. // Insertar flecha:
  8. Imagenes = Imagenes+1;
  9. Grafo.attachMovie("mFlecha", "Flecha"+Nodos, Imagenes);
  10. // Especificar el sitio donde se insertan:
  11. PosicionY = PadrePosicionY+33;
  12. setProperty ("Grafo.Nodo"+Nodos, _y, PosicionY);
  13. setProperty ("Grafo.Flecha"+Nodos, _x, PadrePosicionX);
  14. setProperty ("Grafo.Flecha"+Nodos, _y, PadrePosicionY+6.5);
  15. Hijos = Hijos+1;
  16. if ( Hijos == 1 ) {
  17. PosicionX = PadrePosicionX;
  18. setProperty ("Grafo.Nodo"+Nodos, _x, PosicionX);
  19. } else {
  20. Hijo = 0;
  21. MinPosicionX = PadrePosicionX-16.5*(Hijos-1);
  22. SAquedebeActualizarse = SAs-Hijos;
  23. do {
  24. Hijo = Hijo+1;
  25. PosicionX = (Hijo-1)*33+MinPosicionX;
  26. setProperty ("Grafo.Nodo"+(Nodos-Hijos+Hijo), _x, PosicionX);
  27. // Actualizar datos de las posiciones guardadas:
  28. SAquedebeActualizarse = SAquedebeActualizarse+1;
  29. set ("SA"+SAquedebeActualizarse+"PosicionX", PosicionX);
  30. // Rotación y tamaño de flecha.
  31. DistanciaXPadreHijo = Math.abs(PosicionX);
  32. setProperty ("Grafo.Flecha"+(Nodos-Hijos+Hijo), _height, Math.sqrt(DistanciaXPadreHijo*DistanciaXPadreHijo+20*20));
  33. trace ("Altura: "+Math.sqrt(DistanciaXPadreHijo*DistanciaXPadreHijo+20*20));
  34. Rotacion = 180/Math.PI*Math.atan (DistanciaXPadreHijo/20*-1);
  35. if ( PosicionX<0 ) {
  36. Rotacion = Rotacion*-1;
  37. }
  38. setProperty ("Grafo.Flecha"+(Nodos-Hijos+Hijo), _rotation, Rotacion);
  39. } while ( Hijo < Hijos );
  40. }
  41. }

La 1era vez que se aplica esa función inserta una flecha y no la modifica porque no es necesario; queda como quiero:


La 2nda vez inserta otra (ahora hay 2) y modifica el tamaño y rotación de ambas; quedan como quiero:


La 3era vez lo mismo:


La 4ta vez no queda bien:

Algunas están más anchas que otras, ni idea por qué, y probablemente más largas de lo que deben. Pero las alturas supuestamente son iguales en las que deben serlo:
Altura: 53.3877326733399
Altura: 25.9277843249283
Altura: 25.9277843249283
Altura: 53.3877326733399

¿Alguna idea de cual es el problema, error, y cómo corregirlo?


En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: ¿Cómo logro que las flechas queden del tamaño que quiero?
« Respuesta #1 en: 3 Enero 2024, 09:41 am »

puedes utilizar dos imágenes para la flecha y así la proporción entre ellas se verá mejor.


En línea


EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.068



Ver Perfil
Re: ¿Cómo logro que las flechas queden del tamaño que quiero?
« Respuesta #2 en: 3 Enero 2024, 15:19 pm »

Tu función solo modifica la altura y luego los rota, no veo porque se modifica el ancho, puede que haya algo que lo esté permitiendo, ya sea que tengas problemas con niveles repetidos (variable: Imagenes), o primero haya una rotación y luego una modificación de altura, pero esta función no muestra ese problema, quizá esté en otro lado

Me parece que Macromedia Flash 5 no tiene la opción de BreakPoints para Depuración así que lo tienes más complicado para comprobar el vivo que hace línea a línea y ver sus propiedades, salvo que repartas el código en fotogramas y les pongas un pause() al final o trabajes viendo que pasa línea a línea comentando todo lo demás según avanzas.
En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.217


Superhacker (es broma xD )


Ver Perfil
Re: ¿Cómo logro que las flechas queden del tamaño que quiero?
« Respuesta #3 en: 6 Enero 2024, 18:04 pm »

puedes utilizar dos imágenes para la flecha y así la proporción entre ellas se verá mejor.
La idea es que pueda haber cualquier cantidad de flechas; no tengo pensado poner 100 por ejemplo pero por lo dicho no parece buena idea hacer distintas imágenes cada vez que unas aparezcan mal, nunca acabaría.

salvo que repartas el código en fotogramas y les pongas un pause() al final o trabajes viendo que pasa línea a línea comentando todo lo demás según avanzas.
Haré eso.

Publiqué sin querer, a veces presiono tab en vez de mayus y dios sabe lo que sucede luego xP

No fue necesario, una teoría que tenía acerca del problema era que rotar la imagen causaba que la altura y ancho se confundieran, similar a cuando usando la herramienta rotar estiras una parte (no tiene mucho sentido que se haga con rotar, pero supongo que lo has visto, cliqueando los cuadraditos del medio en vez de los circulos de las puntas, con eso se puede hacer un paralelogramo a partir de un rectángulo por ejemplo, le llaman sesgar), así que probé poner rotación 0 antes de modificar la altura y funcionó. Aquí 2 ejemplos:

Probablemente la altura se considera cuánto ocupa en Y, yo pensaba que era cuán alta era independientemente de la rotación...
Con esto quizá también aprendí a sesgar usando código, no había visto una función que hiciera eso, pensé que sólo podía hacerse en la hoja.
« Última modificación: 6 Enero 2024, 18:53 pm por Tachikomaia » En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: ¿Cómo logro que las flechas queden del tamaño que quiero?
« Respuesta #4 en: 7 Enero 2024, 07:10 am »

La idea es que pueda haber cualquier cantidad de flechas; no tengo pensado poner 100 por ejemplo pero por lo dicho no parece buena idea hacer distintas imágenes cada vez que unas aparezcan mal, nunca acabaría.

me refiero que para que no se vea mayor la punta de la flecha, si ésta no la modificas, se verá como quieres.

En línea


Tachikomaia


Desconectado Desconectado

Mensajes: 1.217


Superhacker (es broma xD )


Ver Perfil
Re: ¿Cómo logro que las flechas queden del tamaño que quiero?
« Respuesta #5 en: 7 Enero 2024, 10:12 am »

No estoy seguro de que eso hubiera servido, pero es una buena idea que me podría servir más adelante.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines