java

You are currently browsing articles tagged java.

Con Sagemath podemos mostrar curvas y superficies en un applet interactivo de java. Ha sido una odisea de dos días conseguir empotrar el applet en el blog, pero finalmente aquí está el resultado.

En el tutorial oficial de Sagemath hay unos ejemplos sencillos de algunas parametrizaciones, no teneis más que copiarlas en vuestro sage local o en el notebook público online para ver el estupendo resultado. Utiliza Jmol para su visualización, un applet de java para la representación de moléculas que permite rotar, hacer zoom, y algunas cosas más.

Para emportar el applet con la superficie en nuestro blog primero necesitaremos obtener el fichero con la superficie, en la lista de correo de sage me explican un truco para encontrarlo. Añadimos la sentencia open ('a.txt', 'w') lo cual hará aparecer al evaluar un enlace a la ruta donde se guardan los ficheros de datos de esa evaluación. Debe ser algo como https://localhost:8000/home/admin/73/cells/1/a.txt quitamos el a.txt de la ruta y entonces encontramos varios ficheros. Lo que nos interesa realmente es el fichero zip que dentro tiene un fichero de malla .pmesh. Lo guardamos para utilizarlo posteriormente.

Ahora vamos a instalar Jmol en wordpress. No hay mucho que hacer, descargamos el paquete de binarios de la página oficial y lo descomprimimos por ejemplo en el directorio wp-content/jmol
Necesitamos ahora una molécula para representar, por ejemplo la de cafeína, que colocamos tambien el el directorio wp-content.
En un nuevo post escribimos el código:


<applet name="jmol" code="JmolApplet"
           archive="/wp-content/jmol/JmolApplet.jar"
           width="200" height="200" mayscript="true">
  <param name="progressbar" value="true"/>
  <param name="load" value='/wp-content/caffeine.xyz'/>
</applet>

¡Y listo! Ahora deberías tener una preciosa molécula alcalina como esta girando por tu blog. Por cierto que es la misma molécula que la teína, guaranina y mateína.


width="200" height="200" mayscript="true">

cafeína
(si no la ves prueba recargando el explorador)

Ahora puedes probar el zoom con la rueda del ratón; pinchar y rotarla; pulsar Shift, pinchar y desplazar en horizontal el ratón; pulsar Alt Gr y pinchar para desplazarla.

Con Jmol funcionando vamos a representar ahora la superficie que hemos obtenido en sage, bastaría con subir el fichero .pmesh y sustituir en el script la linea que representa una molécula:

<param name="load" value='/wp-content/caffeine.xyz'/>

Por esta otra que representa la superficie (sf.pmesh):

<param name="script" value='pmesh "/wp-content/sf.pmesh"'/>

Quedando así:


<applet name="jmol" code="JmolApplet"
           archive="/wp-content/jmol/JmolApplet.jar"
           width="200" height="200" mayscript="true">
  <param name="progressbar" value="true"/>
  <param name="script" value='pmesh "/wp-content/sf.pmesh"'/>
</applet>

Por supuesto se puede cambiar el path del .pmesh para utilizar ficheros subidos con el interfaz de carga de wordpress en el directorio /wp-content/uploads.

Otra forma alternativa de hacerlo, pero que requiere editar el fichero de cabecera del blog es la siguiente:
En header.php colocamos:


<script type="text/javascript">
<!--
function insertJmol(me,width,height,myPmesh) {
   document.getElementById(me).innerHTML =
   '<applet width="'+width+'" height="'+height+
   '" code="JmolApplet" archive="/wp-content/jmol/JmolApplet.jar">'
   +'<param name="progressbar" value="true">'
   +'<param name="script" value='+"'pmesh"+'"'+myPmesh+'"'+"'"+'>';
 }
//-->
</script>

Y en los post llamamos al applet con:


<div class="jmol" id="caffeine_applet">
<img src="/wp-content/logo.png" onLoad="insertJmol('caffeine_applet',400,400,'/wp-content/file.pmesh')" alt="caffeine screenshot"/>
</div>

(No hay que olvidar subir la imagen de precarga logo.png).
No sé muy bien cual es la ventaja de esto, pero en las páginas de Jmol recomiendan hacerlo así. La verdad a mi este método me da problemas cuando coloco en un post más de un applet, pero lo pongo para que quede la referencia.

Con cualquiera de las dos formas obtendremos el applet Jmol con nuestra superficie empotrado en el blog ¿no es estupendo? :-)


width="400" height="400" mayscript="true">

twistedTorus

¿No se visualiza? | Controles

Si las superficies generadas con sagemath os saben a poco y quereis explorar las posibilidades de la herramienta aquí teneis una batería de enlaces:

Y para acabar agradecer a todos aquellos que han aguantado mi inglés de todo a cien en las listas de correo:

Actualización: Hay un pequeño problema con las url, tengo que ponerlas absolutas si no quiero que nada más se vea en la página principal del blog y no en las páginas individuales de los post. Seguro que se soluciona con algún atributo de path de wordpress… investigaré.
¡Solucionado!
Cambiamos la ruta wp-content/ por /wp-content.

Tags: , , , ,