HelpMe!!! ¿Cómo usar los guiones globales de javascript?

Rafael shared this question 2 months ago
Answered

Necesito poder escribir guiones Javascript en la parte gobal, pero no encuentro como hacerlo. he podido crear botones con javascript al clic y también algunas cosas con javascript al actualizar... pero no consigo como hacer por ejemplo que el programa desde el inicio haga que todas las líneas y puntos sean de un tamaño determinado y color. o cosas por el estilo. se algo de variables funciones, arreglos, y ciclos en Javascript... pero no encuentro el modo de manejarme con la zona de funciones globales.-gracias

Comments (8)

photo
2

Basically, Global JS is always inside a function. This Global-JS function can be called from JS which is placed somewhere. Either from the JS in onUpdate or onClick in the objects. Or from the so-called "listener calls" from the kernel of GGB itself.

"Listener calls can be established anywhere in the JS-code by specifying the name of the function to be call in global JS on a GGB-specific (non-object related) event. Usually this "listener-calls" are established within the function ggbOnInit(), which is called by the GGB kernel when an applet is started. Listeners are a very powerful concept, it is worth using JS for this.

The documentation is quite sparse and it is recommended to do several experiments before starting a concrete project. You should always have this documentation at hand. The best way to answer questions is to create and adapt experiments and draw conclusions. GGB-5 and GGB-6 has some (small) differences (I don't know which, because I always use GGB-5).

Most objects and their properties can be accessed via the interface "ggbApplet.<interface>(<parameters>)" (see link above). Some properties must be read and written via XML. Cumbersome conversion procedures are required to access GGB lists.

If there are errors in the global JS, no error message appears and the JS is aborted silently. It is therefore recommended to test a JS function within a buttons onClick before it is established in global-JS.

Larger codings should be created outside the GGB internal code-editor and then copied with Ctrl-C and Ctrl-V into the code-editor.

The alert() command is available for testing (nothing more).

JS is useful in very few situations and is overestimated at the beginning. Usually the disadvantages outweigh the benefits.

Many hours of desperation await you. Have fun.

.

attached a sample with listener

photo
1

Apreciado Rafael:

Las funciones globales se crean en la pestaña JavaScript global. En la aplicación adjunta puedes ver cómo invocar una función global.

Para que el programa ejecute ciertas líneas desde el inicio, puedes incorporar dichos comandos a la función ggbOnInit (también te puedes guiar por el ejemplo).En mi aplicación, cuando la grabé y cerré, lo hice estando los objetos con sus parámetros estándar (color negro y tamaños estándar). Al abrirse, aparecen con características especiales.

Para evaluar el trabajo de ggbOnInit debes cerrar y volver a abrir el archivo. O bien, puedes crear un botón cuyo guion tenga la única línea:

ggbOnInit();

y lo ocultas al terminar tus pruebas. En la aplicación de ejemplo puse el botón para mejor claridad.

Tips:

  • Reitero la recomendación de rami: consultar constantemente

https://wiki.geogebra.org/e...

(de allí me guié para la sintaxis de los comandos que asignan color, tamaño y espesor de línea)

  • ggbApplet.evalCommand("comando-geogebra-script") permite que se usen los comandos de GeoGebra dentro de JavaScript.
  • Algunos comandos de colores usan los componentes rgb (rojo, verde y azul) entre 0 y 1, otros entre 1 y 255, y en ciertos casos se admite el uso de nombres en formato texto (por ejemplo, «blue»). Te irás familiarizando con ellos a medida que los uses.
  • Recuerda seleccionar JavaScript (en lugar de JavaScript) en los guiones en los que corresponda.

Nota: La aplicación de ejemplo ejecuta tres tareas:

  • Cambia las características de los puntos y el segmento (color, tamaño, espesor)
  • Incorpora botón para revisar las líneas que se ejecutan automáticamente al inicio sin tener que cerrar la aplicación
  • Presenta un ejemplo de una función global personalizada

Aunque no soy un experto, estoy totalmente a la orden ante cualquier duda que puedas llegar a tener.

photo
1

Erratas:

  • Otros comandos usan los colores entre 0 y 255 (no entre 1 y 255)
  • Recuerda seleccionar JavaScript (en lugar de GeoGebra Script)

photo
1

Ok Thanks. (no hubiera podido resolverlo sin su valiosa ayuda, es un tópico que pocas personas utilizan.Hay pocos ejemolos y es muy útil)

photo
1

Siempre a la orden.

Disculpe la demora en contestar: no había visto antes su consulta.

photo
2

He podido, lograr que funcione, hice algunos cambios y simplificaciones para mostrar lo que estoy buscando crear. (mi idea es lograr que todos los puntos que se generen de aquí en mas sean por defecto de tamaño 1 y color negro, y sin etiqueta (es decir, que los dibujos sean mas parecidos a Autocad, ya por defecto, cada vez que quiero dibujar algo) - Luego decido si muestro las etiquetas o no o si cambio tamaños y colores... me parece mucho mejor dibujar sin etiquetas y con puntos y líneas negros y de tamaño 1 -.) Para lo cual aquí hice un simple ejemplo de botón con instrucciones para probar un cambio de apariencia... y luego con el botón activo la función global . Lo que no se si se podrá es hacer que todos los puntos y líneas sean desde que se inicia el script siempre de tamaño 1 y color negro. (es decir dejar seteada la función global para nuevos puntos y líneas). espero que el ejemplo sea de utilidad. ( y el script que quiero hacer sirva para los dibujantes que están acostumbrados a trabajar en Cad y no sientan tanto la diferencia de pasar de un programa al otro. - en mi caso soy mas dibujante que matemático, y me llevo mejor con dibujos y líneas finas, sin etiquetas, ni coordenadas, al menos para algunos dibujos artísticos que quiero implementar) - Hice algunos dibujos estilo M. Escher, y continuar en esa línea me interesa...para ello necesito que el script por defecto maneje un formato similar a estar dibujando con una pluma estilográfica, o lápiz negro. (aquí dejo mi humilde script, como para que se entienda hacia donde me dirijo.) - Gegoebra se me ha vuelto una herramienta indispensable, superando en posibilidades a Autocad, y además me permite pensar y reflexionar mas matemáticamente algunos diseños. (pero estoy en los primeros pasos de esta etapa. - solo le dediqué dos meses a aprender geogebra 2D y luego pasaré a 3D (para lo cual necesito de estas funciones globales que queden preseteadas por defecto para simplificar todo -Un dibujo 3D complejo, lleno de etiquetas y puntos y lineas gruesos sería confuso y llevaría mucho tiempo quitar todas esas etiquetas y modificar cada color y tamaño de punto y linea-).. Autocad lo estudié por dos años, así que tengo esperanzas de lograr un dominio básico de Geogebra a fin de año y deseo aplicarle mucho de lo que aprendí en Javascript.) también dejo un de mis trabajos con teselas tipo M. Escher, que me llevó unas semanas lograr, pero es la base de lo que luego intentaré en 3D. - la unión de Arte y Matemáticas es realmente apasionante y hay todo un universos de ilusiones ópticas, Op-art e ilusiones con colores que aún se pueden descubrir.

photo
2

No puedo ofrecerte más ayuda de la que ya te han ofrecido y rami me supera en javascript en todos sus aspectos, pero yo sí tengo la manía de no usar scripts si no los considero necesarios y creo que en algunos aspectos este hilo es excesivo en su uso.

si instalas la version 5 y seleccionas algunos de los aspectos que quieres probar en preferencias default te ahorrarás mucho trabajo sobre todo de depuración

abre el adjunto y prueba a hacer puntos segmentos puntos en segmento e intersecciones de segmentos

no he quitado las etiquetas pero si haces lo que te digo verás que es facil

Files: foro.ggb
photo
1

Coincido con mathmagic (quien me ha brindado mucho la mano en preguntas que he realizado desde mi otra cuenta de GeoGebra Math Hobbyist), de evitar el uso de scripts en cuanto se pueda.

Para asignar los estilos estándar, en GeoGebra 5:

Opciones > Avanzado > Patrones por omisión > allí seleccionas el estilo predeterminado que quieras asignar a cada categoría de objetos (incluyendo espesores de línea, otros tamaños y colores).

/D2ERY5Te8cKVAAAAAElFTkSuQmCC

Para suprimir las etiquetas: Opciones > Etiquetado > Ningún objeto nuevo.

Una vez concluido el trabajo de configuración, si quiere mantener el estilo para todos los futuros archivos:

Opciones > Guardar configuración.


Cambiando de tema, en mi caso, el Probador de JavaScript arrojó un error, que se corrigió ingresando las tres coordenadas R, G y B para setColor.

photo
© 2020 International GeoGebra Institute