Diferencia entre revisiones de «Categoría:Comandos de Guiones - Scripting»

De GeoGebra Manual
Saltar a: navegación, buscar
m (link)
m (Página reemplazada por «{{DISPLAYTITLE:Comandos de Guiones (''scripting'')}} Category:Comandos»)
 
(No se muestran 34 ediciones intermedias de 4 usuarios)
Línea 1: Línea 1:
__NoToc__<!--<noinclude>{{Manual Page|version=5.0}}</noinclude>{{Objects|script}}--><small>
+
{{DISPLAYTITLE:Comandos de Guiones (''scripting'')}}
=Comandos de Guiones - Scripting=
+
[[Category:Comandos]]
</small>{{command|scripting|category| Comandos de Guiones}}
 
Estos comandos, de aporte y facilitación de [[Referencia:Xml#Programa (guion-script)|''guiones'' (''scripts'')]] en GeoGebra, pueden ser sustituidos por alternativas de funcionalidad análoga, como las disponibles desde el [[Manual:Referencias_y_Cuadros_de_Diálogo#Cuadro_de_Propiedades_de_Objetos|Cuadro de Propiedades]] por ejemplo. .
 
{{Note|1=Al carecer de salida, no dejan objeto alguno a incorporar a otro comando.<br><!-- <br>A partir de la versión 4.2, puede emplearse el comando [[Comando Si|Si]]'''['''...,[[Comando  Valor|Valor]]'''['''],[[Comando  Valor|Valor]]'''[''']]  pero [[Comando Secuencia|Secuencia]]'''['''[[Comando Valor|Valor]]'''['''],...] y  [[Comando Zip|Zip]]'''['''[[Comando Valor|Valor]]'''['''],...] no son operativos aún. -->
 
}}
 
*[[Comando ActualizaConstrucción|ActualizaConstrucción]]
 
*[[:Categoría:Comandos de Guiones - Scripting#Comando Botón|Botón]]
 
*[[Comando Capa|Capa]]
 
*[[Referencia:Xml#Comando CasillaControl|CasillaControl]]
 
*[[Comentarios:Comando_CasillaDeEntrada|CasillaEntrada]]
 
*[[Comando Color|Color]]
 
*[[Comando ColorFondo|ColorFondo]]
 
*[[Comando ColorDinámico|ColorDinámico]]
 
*[[Comentarios:Comando CondiciónParaMostrar|CondiciónParaMostrar]]
 
*[[Comando Coordenadas| Coordenadas]]
 
*[[Comando CopiaObjetoEn|CopiaObjetoEn]]<!-- <sup>[[Comando AdosaCopiaAVista|AdosaCopiaAVista]]</sup> -->
 
*[[Comando CopiaObjetoLibre|CopiaObjetoLibre]]
 
*[[Comando Decoración|Decoración]]
 
*[[Comando Deslizador|Deslizador]]
 
*[[Comando DesplazaPíxeles|DesplazaPíxeles]]
 
*[[Comando Ejecuta|Ejecuta]]
 
*[[Comando EjecutaAlActualizar|EjecutaAlActualizar]]<sup><small><small>GG 4.4</small></small></sup>
 
*[[Comando EjecutaAlClic|EjecutaAlClic]]<sup><small><small>GG 4.4</small></small></sup>
 
*[[Comando Elimina|Elimina]]
 
*[[Comando EstiloPunto|EstiloPunto]]
 
*[[Comando EstiloTrazo|EstiloTrazo]]
 
*[[Comando ExportaImagen|ExportaImagen]]
 
*[[Comando Fija|Fija]]
 
*[[Comando FijaSemilla|FijaSemilla]]
 
*[[Comando GrosorLínea|GrosorLínea]]
 
*[[Comando IniciaAnimación|IniciaAnimación]]
 
*[[Comando IniciaReporte|IniciaReporte]]
 
*[[Comentarios:Comando ModoRótulo|ModoEtiqueta]]
 
*[[Comentarios:Comando_FijaModoDescripción|ModoIndicaciones]]
 
*[[Comando MuestraCapa|MuestraCapa]]
 
*[[Comando MuestraCuadrícula|MuestraCuadrícula]]
 
*[[Comando MuestraEjes|MuestraEjes]]
 
*[[Comando MuestraEtiqueta|MuestraEtiqueta]]
 
*[[Comando OcultaCapa|OcultaCapa]]
 
*[[Comando Opacidad|Opacidad]]<sup>Antes [[Comando Opacidad|Sombreado]] o [[Comando Opacidad|Relleno]]</sup>
 
*[[Comando Rastro|Rastro]]
 
*[[Comando RazónEjes|RazónEjes]]
 
*[[Comando Renombra|Renombra]]
 
*[[Comando Repite|Repite]]
 
*[[Comentarios:Comando Rótulo|Rótulo]]
 
*[[Comando Selecciona|Selecciona]]
 
*[[Comando TamañoPunto|TamañoPunto]]
 
*[[Comando TextoAFunción|TextoAFunción]]
 
*[[Comando TextoANúmero|TextoANúmero]]
 
*[[Comando TocaSonido|TocaSonido]]
 
*[[Comando TomaTiempo|TomaTiempo]]
 
*[[Comando Valor|Valor]]
 
*[[Comando VelocidadGiro|VelocidadGiro]]
 
*[[Comentarios:Comando_FijaVisibilidadEnVista|Visibilidad]]
 
*[[Comando VistaActiva|VistaActiva]]
 
*[[Comando VistaCentrada|VistaCentrada]]
 
*[[:Categoría:Comandos_de_Guiones_-_Scripting#Comando ZoomAcerca|ZoomAcerca]]
 
*[[Referencia:Xml#Comando_ZoomAleja|ZoomAleja]]
 
<h4>Comandos de Tortuga</h4>
 
*[[Manual:Comandos de Tortuga|Tortugas]]
 
*[[Manual:Comando Tortuga|Tortuga]]
 
*[[Manual:Comando TortugaAbajo|TortugaAbajo]]
 
*[[Manual:Comando TortugaArriba|TortugaArriba]]
 
*[[Manual:Comando TortugaAvanza|TortugaAvanza]]
 
*[[Manual:Comando TortugaDerecha|TortugaDerecha]]
 
*[[Manual:Comando TortugaIzquierda|TortugaIzquierda]]
 
*[[Manual:Comando TortugaRetrocede|TortugaRetrocede]]
 
==Respecto de Comandos de Guiones==
 
<h4>Comando Botón</h4>
 
;Botón():Crea un nuevo [[:Categoría:Objetos de Acción#Botones|botón]].
 
{{Note|1=El ''botón'' se ubica en la esquina superior izquierda de la [[Vista Gráfica]] activa,}}
 
;Botón( <Texto ([[Comentarios:Etiquetas#Rótulos|etiqueta]])> ):Crea un nuevo [[:Categoría:Objetos de Acción#Botones|botón]] con la [[Comentarios:Etiquetas#Rótulos|etiqueta]] indicada.
 
{{Example|<div><code><nowiki>Botón("Ok")</nowiki></code> crea un botón en la esquina superior izquierda de la {{vista|graf}} con el título ''Ok''</div>}}
 
{{OA|[[Image:Mode buttonaction.svg|link=:Categoría:Iconos#Herramienta_de_Botón|32px]] [[:Categoría:Iconos#Herramienta_de_Botón|Botón]], <small>en este caso.</small>}}
 
<h4>Comando ZoomAcerca</h4>
 
;'''ZoomAcerca'''( <Factor de Escala> )
 
:Acerca a la [[Vista Gráfica]] activa según el factor dado respecto al del enfoque actual, estableciendo el centro de la pantalla como el de aproximación.
 
{{Examples|1=<br>'''<code>ZoomAcerca(2)</code>''' acerca la visual<br>'''<code>ZoomAcerca(0.5)</code>''' es equivalente a <code>ZoomAleja(2)</code>, aleja la visual.<br>'''<code>[[Referencia:Xml#Comando ZoomAcerca|ZoomAcerca]](1)</code>''' no tiene efecto alguno y sí una interesante utilidad dado que elimina los [[Rastreo|rastros]] de la [[Vista Gráfica]].}}{{Note|1=Ver el comando [[Comando Rastro|Rastro]].}}
 
;'''ZoomAcerca'''(<small> <</small>Factor de Escala<small>>, <</small>Punto Centro<small>> </small>):Acerca la [[Vista Gráfica]] activa según el factor dado respecto al del enfoque actual, estableciendo el centro de aproximación acorde al segundo parámetro.
 
{{Note|1=<code>ZoomAleja(t)</code> y <code>ZoomAleja(t, A)</code> son equivalentes a <code>[[:Categoría:Comandos_de_Guiones_-_Scripting#Comando ZoomAcerca|ZoomAcerca]](1/t)</code> y <code>[[:Categoría:Comandos_de_Guiones_-_Scripting#Comando ZoomAcerca|ZoomAcerca]](1/t, A)</code> respectivamente.}}
 
;'''ZoomAcerca'''( <Mín x>, <Mín y>, <Máx x>, <Máx y> ):Acerca la [[Vista Gráfica]] al rectángulo dado por los vértices (Mín x, Mín y), (Máx x, Máx y).
 
{{OJo|1=Si alguno de estos parámetros es dependiente o tiene un rótulo de un conjunto al que de algún modo pertenece, los límites de la vista resultan dinámicos.<br> Así, si ''a'' es un deslizador, <code>ZoomAcerca(-a, -a, a, a)</code> enfoca la vista dependiente del deslizador  ''a''. Para evitar este comportamiento si no fuera el deseado, se puede apelar al comando [[Comando CopiaObjetoLibre|CopiaObjetoLibre]].}}
 
{{OJo|1=<br><code>[[Referencia:Xml#Comando_ZoomAleja|ZoomAleja]]'''('''t''')'''</code> y <code>ZoomAleja'''('''t, A''')'''</code> son equivalentes a <code>ZoomAcerca'''('''0001/t''')'''))</code> y <code>ZoomAcerca'''('''1/t, A''')'''))</code> respectivamente.}}
 
{{Notes|1=<div>
 
*Cuando están  abiertas múltiples  [[Vista Gráfica|vistas gráficas]], solo la activa es afectada<br>
 
*Ver también los comandos [[Referencia:Xml#Comando_ZoomAleja|ZoomAleja]] y [[Comando VistaActiva|VistaActiva]]
 
</div>}}
 
{{OJo|1=Al indicar  <code>ZoomAcerca(x([[Comando Esquina|Esquina]](1)),  y([[Comando Esquina|Esquina]](1) ), x([[Comando Esquina|Esquina]](3) ), y([[Comando Esquina|Esquina]](3)))</code> se "bloquea" la [[Vista Gráfica]], se desactiva todo ''zoom''<br/> Con  <code>ZoomAcerca(0,0,0,0)</code> se retorna a la ''normalidad''.}}
 
 
 
== Ideas para Ensayar ==
 
===Aproximación<sup>lineal</sup>tangencial<sub>a una función</sub>===
 
Si se establece un punto '''''A''''' sobre una [[:Categoría:Objetos_Geométricos#Funciones|función]] ''f'' que se vincula a un [[:Categoría:Objetos de Acción#Botones|botón]] con una línea de código  como <code>ZoomAcerca(2, A)</code>, con esa óptica ''magnificada'' el trazo de la gráfica se identifica visualmente con la tangente a ''f'' en '''''A'''''.  Un [[:Categoría:Objetos de Acción#Botones|botón]] adicional asociado al  [[Referencia:Xml#Comando_ZoomAleja|Zoom de Alejamiento]] -<code>ZoomAleja(2, A)</code>- permite reintentarlo en otra posición y volver, una vez reubicado el punto, a la ''mirada de cerca''.<br>
 
Para '''''f(x) = 2 x² +  x - 7''''', por ejemplo,  al colocar a '''''A''''' sobre una rama de la parábola, una pulsación o dos para el acercamiento, basta para tener la ''apreciación linealizada''. Pero se hace necesaria una ''lupa'' de mayor ''magnificación'' para provocar la misma ilusión óptica cerca del vértice.<br>
 
{{OJo|1=Para volver a la ''Vista Estándar'' puede pulsarse {{KeyCode|Ctrl + M}}.}}
 
{{Note|1=<br>Ver, para ilustrar la posibilidad de emplear un comando [[:Categoría:Comandos_de_Guiones_-_Scripting#Comando ZoomAcerca|ZoomAcerca]] para ''limpiar rastros'', el tutorial de [[Tutorial:Hacia el Algebra desde la Barra#Escenarios de Análisis|Escenarios de Análisis]]}}
 
 
 
==Guiones: Script y Javascript==
 
'''''GeoGebra''''' respalda sendos lenguajes de programación de guiones (scripting)  -- GGBScript y  Javascript. Un "script" es un guion de una secuencia de acciones que puede desencadenarse con:
 
*un ''clic'' o actualización de un  objeto particular
 
*la apertura de un archivo (en caso de Javascript)
 
*vías pertinentes tendientes a Javascript (ver [[Referencia:JavaScript|''Referencia: JavaScript'']])
 
Se puede fijar una vía a los guiones señalados a través de la pestaña correspondiente del [[Manual:Referencias_y_Cuadros_de_Diálogo#Cuadro_de_Propiedades_de_Objetos|Cuadro de Propiedades]] de un objeto.
 
===GGBScript===
 
Pueden crearse guiones que consistan en una secuencia de comandos de '''''GeoGebra'''''.
 
{{Example|1=<br>
 
*''a'' es un entero cuyo valor lo establece un [[Herramienta de Deslizador|deslizador]] con un rango de 1 a 3 con un Incremento de 1.
 
*<code><nowiki>Lista_1={"rojo","verde","azul"}</nowiki></code>
 
*en la pestaña  Programa de guion - Secripting de Propiedades de ''a'', se establece en "Al Actualizar"  <code>Color(a, Elemento(Lista_1, a))</code> y se selecciona  "guion (Script) GeoGebra" 
 
*al desplazar el deslizador, se modifica su color.}}
 
 
 
===Guiones a Botón===
 
Es habitual establecer un guion que se desencadene '''''Al clic''''' de un [[:Categoría:Iconos#Herramienta de Botón|''botón'']].
 
{{Example|1=<br>A continuación se copia el contenido de un [[Referencia:Xml#Programa (guion-script)#Guiones: Script y Javascrip|''guion'']] en que ''Al clic'' se controla la abscisa de un punto [[Tutorial:Animándose#Animaciones|''animado'']] sobre una semicircunferencia y acorde al resultado establecen las coordenadas del punto [[Objetos libres, dependientes y auxiliares|libre]] ''A'' y su color (''azul'' o ''verde oscuro''):<br><hr>
 
'''<code>Si( Resto( round(10 x(B)) , 2) == 0, Coordenadas(A, y(B), 0), Coordenadas(A, x(B), 1))</code>'''<br>
 
<code>Si( Resto( round(10 x(B)) , 2])== 0, Colores(A,  "verde oscuro"), Colores( A,"azul" ))</code><br><hr>
 
}}
 
 
 
===JavaScript===
 
JavaScript es un lenguaje de programación empleado en diversas plataformas de tecnología de Internet. A diferencia del Script de '''''GeoGebra''''', los comandos en Javascript no requieren una ejecución secuencial dado que es posible controlar su desenvolvimiento (con condiciones fijadas por cada <code>si/if</code>, <code>mientras/while</code>, <code>para/for</code>). Un interesante tutorial genérico sobre JavaScript aparece en ingles en [https://developer.mozilla.org/en/JavaScript/Guide developer.mozilla.org].<br>
 
En '''''GeoGebra''''', pueden emplearse  comandos especiales de JavaScript que permiten cambiar cualquier construcción. Estos métodos corresponden al objeto  ggbApplet, lo que implica que se los puede convocar como <code>ggbApplet.nombre_del_método(parámetro, .. , parámetro)</code>.
 
Una  lista completa de los comandos disponibles puede encontrarse en [[Referencia:JavaScript]].
 
{{Example|1=
 
<pre>
 
for(var i =0;i<10;i++)  
 
  ggbApplet.evalCommand("A_"+i+"=(random()*10,random()*10)");
 
</pre>
 
Este guion (script) crea 10 puntos  ''A<sub>0</sub>'' a ''A<sub>9</sub>'' dispuestos en  coordenadas aleatorias.
 
}}
 
'''''GeoGebra''''' contiene su propia ''usina'' de JavaScript. Cuando se abre un [[Comentarios:Exporta_Hoja_Dinámica_(html)|Cuadro de Exportación]] de un boceto GGB, se puede elegir si emplear este ''motor' o la contenida en el explorador de aplicaciones ''applets''.<br>
 
Para editar JavaScript en una página HTML, la  variable ggbApplet no será inicializada  automáticamente sino que debe hacérselo primero  <code>ggbApplet=document.applets[0];</code>.
 
{{Note|1=La interfaz JavaScript de '''''GeoGebra''''' es de particular interés para quienes tienen cierta experiencia en la edición en HTML.}}
 
Para desarrollar una ''hoja dinámica'' y aumentar su interactividad, los ''applets'' de '''''GeoGebra''''' ofrecen una interfaz JavaScript.<br>Por ejemplo, se puede crear un botón para generar aleatoriamente nuevas configuraciones de una construcción dinámica. <br><br>
 
Se pueden consultar los documentos Applets de '''''GeoGebra''''' para explorar ejemplos y encontrar información con relación al adecuado uso de JavaScript.
 
==Global JavaScript==
 
En la pestaña "Global JavaScript" de la de "Programas de guion - Scripting", del [[Manual:Referencias_y_Cuadros_de_Diálogo#Cuadro_de_Propiedades_de_Objetos|Cuadro de Propiedades]], pueden definirse algunas '''<u>[[:Categoría:Objetos_Geométricos#Funcioness|funciones]]</u>''' (no ''variables'') que estarán disponibles desde otros ''guiones'' o ''scripts''. Establecer, así, asignaciones pasar a la construcción.<br>
 
También se puede definir la función ''ggbOnInit()'', que se convoca automáticamente al recuperarse la construcción. La función  ggbOnInit puede emplearse para registrar algunos espectadores, como se expone en el ejemplo.
 
{{Example|1=
 
<pre>
 
function onAdd(nombre){
 
    alert("Objeto "+nombre+" añadido.");
 
}
 
 
 
function ggbOnInit(){
 
    ggbApplet.registerAddListener("onAdd");
 
}
 
</pre>
 
En primer lugar se define la función ''onAdd'' que en tanto se le pase una cadena de texto, expone un mensaje dependiente de la cadena. Luego, usando la función ''ggbOnInit'', se le puede indicar a '''''GeoGebra''''' que convoque a esta función cuando se añade un nuevo objeto. Una vez que se ha recuperado la construcción, la función ggbOnInit será convocada y a partir de ese momento, cuando se fuese a añadir un punto llamado, por ejemplo,  ''A'', aparecerá el mensaje "Objeto A añadido".}}
 
También pueden emplearse espectadores para acciones del orden de renombrar, eliminar y borrar una construcción. La lista completa está disponible en [[Referencia:JavaScript|''Referencia:JavaScript'']]
 
{{Note| Al emplear un método ggbApplet cualquiera en Global JavaScript fuera de ggbOnInit, no operará como se pretende dado que será convocado antes de recuperar la construcción.}}
 
===Captación de Datos (Data Logging) USB<small> (En breve en '''''GeoGebra''''' 5.0)</small>===
 
Para captar datos de un Vernier USB (Data Logger como ''Go!Motion'' y''Go!Temp'' ) se puede definir un espectador de captación usando un método de registro ''LoggerListener'' como este:
 
<pre>
 
function logger(value) {
 
  var d = value * 1;
 
  ggbApplet.evalCommand("(CopyFreeObject[a],"+d+")");
 
  ggbApplet.evalCommand("SetValue[a,a+1]");
 
}
 
</pre>
 
Este guion asume que hay un número libre ''a'' en la construcción. Cada vez que el número ''d'' se contacta, el punto ''(a,d)'' se construye y ''a'' se incrementa.
 
;<hr>
 
{{Notes|1=<div>
 
*Consultar los [[:Categoría:Tutoriales|tutoriales]] [[Tutorial:Introducción_a_Guiones_GeoGebraScript|Sobre Guiones GeoGebraScript]] y [[Tutorial:Listas, Secuencias y Guiones para Jugar|Listas, Secuencias y Guiones en Juego]]
 
*Ver también los [[Referencia:Xml#Comandos de Guiones - Scripting|Comandos de Guiones - Scripting]] y las [[Referencia:Python|Referencias de Jython/Python]]
 
</div>}}[[Category:Comandos]][[Category:Comandos de Guiones - Scripting]]<!--
 
[[Category:Comandos]]-->
 

Revisión actual del 00:21 21 ago 2020

© 2024 International GeoGebra Institute