Вы находитесь на странице: 1из 6

Laboratorio III Introducción a las interfaces de usuario

Universidad San Buenaventura (Sede Bogotá)


Ingeniería de sonido

Programación de audio aplicada

Dilan Saavedra vela cód.20141618044

Grupo de trabajo (Ricardo Reyes)

6 de septiembre del 2019 Bogotá DC

I. Introducción. Millones de ingenieros y científicos confían en


MATLAB
Se verán en los tres tipos de lenguajes de
programación requeridos, la programación en interfaz MATLAB combina un entorno de escritorio
de usuario, observando las diferentes formas de perfeccionado para el análisis iterativo y los procesos
sintaxis para lograr un mismo fin, además de las de diseño con un lenguaje de programación que
diferencias esteticas. expresa las matemáticas de matrices y arrays
directamente.
II. Objetivos.
Fabricación profesional
Conocer la definición y manejo básicos del uso de
interfaces gráficas para cada uno de los lenguajes Las toolboxes de MATLAB se desarrollan de forma
usados. profesional, pasan pruebas rigurosas y están
totalmente documentadas.
• Reconocer los diferentes componentes o
widgets que interfieren en el desarrollo de Apps interactivas
interfaces gráficas de usuario usan Python,
Matlab y Unity3D. Las apps de MATLAB le permiten ver cómo
funcionan diferentes algoritmos con sus datos.
• Comprender el funcionamiento de la interfaz Realice iteraciones hasta obtener los resultados
gráfica y su relación con las funciones de deseados y, después, genere automáticamente un
código. programa de MATLAB para reproducir o automatizar
su trabajo.
III. Palabras claves

Guide, Tk, Ui, Interfaz, Gráficos.


Capacidad de escalación
IV. Marco teórico.
Escale sus análisis para la ejecución en clusters,
• MATLAB GPUs y nubes únicamente con cambios menores en
el código. No es necesario volver a escribir el código
ni aprender programación para Big Data y técnicas de
manejo de datos fuera de memoria.

Despliegue en aplicaciones empresariales

El código de MATLAB está listo para pasar a


producción, de forma que podrá ir directamente a la
nube y los sistemas empresariales para realizar la
integración con orígenes de datos y sistemas
empresariales.

Ejecución en dispositivos embebidos

5
Convierta automáticamente algoritmos de MATLAB bastantes analogías entre Python y los lenguajes
en código C/C++ y HDL para su ejecución en minimalistas de la familia Lisp como puede ser
dispositivos embebidos. Scheme.

Integración con el diseño basado en modelos • Unity (Visual Studio)

MATLAB colabora con Simulink para permitir el


diseño basado en modelos, el cual se emplea para la
simulación multidominio, la generación automática
de código y la comprobación y verificación continuas
de sistemas embebidos.

• Python

Unity es un motor de videojuego multiplataforma


creado por Unity Technologies. Unity está disponible
Python es un lenguaje de programación interpretado como plataforma de desarrollo para Microsoft
cuya filosofía hace hincapié en una sintaxis que Windows, OS X, Linux. La plataforma de desarrollo
favorezca un código legible. tiene soporte de compilación con diferentes tipos de
plataformas (Véase la sección Plataformas objetivo).
Se trata de un lenguaje de programación A partir de su versión 5.4.0 ya no soporta el
multiparadigma, ya que soporta orientación a objetos, desarrollo de contenido para navegador a través de su
programación imperativa y, en menor medida, plugin web, en su lugar se utiliza WebGL. Unity
programación funcional. Es un lenguaje interpretado, tiene dos versiones: Unity Professional (pro) y Unity
de tipado fuerte, dinámico y multiplataforma. Personal.

Es administrado por la Python Software Foundation. La empresa Unity Technologies fue fundada en 2004
Posee una licencia de código abierto, denominada por David Helgason (CEO), Nicholas Francis (CCO),
Python Software Foundation License, que es y Joachim Ante (CTO) en Copenhague, Dinamarca
compatible con la Licencia pública general de GNU a después de su primer juego, GooBall, que no obtuvo
partir de la versión 2.1.1, e incompatible en ciertas éxito. Los tres reconocieron el valor del motor y las
versiones anteriores. herramientas de desarrollo y se dispusieron a crear un
motor que cualquiera pudiera usar a un precio
Python es un lenguaje de programación asequible. Unity Technologies ha recibido
multiparadigma. Esto significa que más que forzar a financiación de Sequoia Capital, Capital WestSummit
los programadores a adoptar un estilo particular de y Socios iGlobe.
programación, permite varios estilos: programación
orientada a objetos, programación imperativa y El éxito de Unity ha llegado en parte debido al
programación funcional. Otros paradigmas están enfoque en las necesidades de los desarrolladores
soportados mediante el uso de extensiones. independientes que no pueden crear ni su propio
motor del juego ni las herramientas necesarias o
Python usa tipado dinámico y conteo de referencias adquirir licencias para utilizar plenamente las
para la administración de memoria. opciones que aparecen disponibles. El enfoque de la
compañía es "democratizar el desarrollo de juegos", y
Una característica importante de Python es la hacer el desarrollo de contenidos interactivos en 2D y
resolución dinámica de nombres; es decir, lo que 3D lo más accesible posible a tantas personas en todo
enlaza un método y un nombre de variable durante la el mundo como sea posible.
ejecución del programa (también llamado enlace
dinámico de métodos). En 2008, sobre una base mensual regular.

Otro objetivo del diseño del lenguaje es la facilidad • Interfaz gráfica.


de extensión. Se pueden escribir nuevos módulos
fácilmente en C o C++. Python puede incluirse en La interfaz gráfica de usuario, conocida también
aplicaciones que necesitan una interfaz programable. como GUI (del inglés graphical user interface), es un
programa informático que actúa de interfaz de
Aunque la programación en Python podría usuario, utilizando un conjunto de imágenes y objetos
considerarse en algunas situaciones hostil a la gráficos para representar la información y acciones
programación funcional tradicional del Lisp, existen disponibles en la interfaz. Su principal uso, consiste

2
en proporcionar un entorno visual sencillo para disp(x)
permitir la comunicación con el sistema operativo de
Luego para el siguiente botón, -cabe aclarar que se
una máquina o computador.
omiten los textview y el inputText ya que no se
programan, en cambio el botón si- se obtiene lo que
el usuario halla ingresado en el inputText y se
imprime este valor al textview, el código es el
siguiente:
x=get(handles.edit1,'String');
set(handles.text2,'String',x);

En seguida la programación para ambos Sliders es la


misma, solo se modifican sus valores máximos, ya
que los mínimos son los mismos. Se trata de obtener
los valores tipo value del objeto e imprimirlos en sus
respectivos textview, el código será:

x=get(hObject, 'value');
set(handles.text3,'String',x);
Habitualmente las acciones se realizan mediante
manipulación directa, para facilitar la interacción del • Python 37
usuario con la computadora. Surge como evolución
de las interfaces de línea de comandos que se usaban En Python el manejo de interfaz es mucho más
para operar los primeros sistemas operativos y es manual, ya que todo es programado por código, a
pieza fundamental en un entorno gráfico. Como menos de que se use algún tipo de editor que permita
ejemplos de interfaz gráfica de usuario, cabe citar los este uso en Python.
entornos de escritorio Windows, el X-Window de
GNU/Linux o el de Mac OS X, Aqua. El primer botón se declara en la columna 0 y fila 0 de
la grilla que posee la librería de tk, además de que se
En el contexto del proceso de interacción persona- le da un valor inicial a su texto, y la función a la cual
computadora, la interfaz gráfica de usuario es el el botón obedecerá, su código es:
artefacto tecnológico de un sistema interactivo que
posibilita, a través del uso y la representación del self.button1 =
lenguaje visual, una interacción amigable con un Button(self,text=texto1,command=self
sistema informático. .button_1,width=10)#.place(x=70,y=10
)
V. Procedimiento. self.button1.grid(row=0,column=0)

Esta etapa del laboratorio se dividirá en dos secciones Es los mismo para el segundo botón, cambiando la
la teórica y la práctica, siendo la teórica donde se función a la que obedece, su texto inicial, y su
verá una explicación breve de la programación ubicación en la grilla, será:
(Códigos) en los diferentes lenguajes, viendo sus
funciones y métodos utilizados, y la práctica en self.button2 = Button(self,
donde se verá el análisis de resultados y text="Click", command=self.button_2,
comparaciones debidas. width=10 )
self.button2.grid(row=3, column=0)
• Procedimiento teórico.
Ahora para el inputText,, su código de inicialización
MATLAB es solo el valor de ancho del objeto y su ubicación en
la grilla, será:
Como se puede observar en el archivo untitled.m que
self.entry1 = Entry(self, width=10)
se tiene en la carpeta de MATLAB, en la función del
self.entry1.grid(row=2, column=0)
primer botón (Cambio de texto) su código es muy
sencillo solo se trata de obtener el String que posee el
Para el textView, el código es el mismo que el
objeto y enseguida imprimir el valor que se desea al
inputText, es decir:
mismo objeto. Su código es:
x=get(hObject, 'String'); self.label1 =
if(x=="Hola") Label(self,text="...",width=10)#.pla
set(hObject, 'String','Chao'); ce(x=70,y=50)
else self.label1.grid(row=1, column=0)
set(hObject, 'String','Hola');
end

5
Finalmente, el código para los sliders serán los sino por archivos c# (.cs), entonces cada archivo de
mismo, solo cambiará el valor máximo de estos y la esta clase, es capaz de modificar los valores de un
resolución, pero su orientación y función son las elemento en si en este entorno de programación.
mismas, entonces su resultado es:
No siendo más, se comenzará a explicar el código de
self.slider1 = Scale(self, cada elemento.
from_=0,to=100, orient=HORIZONTAL,
resolution=0.1,command=self.slider_1 El primer botón esta dado por él .cs llamado
) “cambiar_texto”, que se encarga de cambiar su texto.
self.slider1.grid(row=4, column=0) Comienza creando una función que permita esto,
como parámetro de entrada tiene un objeto Text, al
que luego se le abstraerá el texto, dependiendo de su
datos) valor toma una u otra decisión, su código es:
return wavearray
public void CambiaTexto(Text texto)
La función a la que obedecerá el botón 1, tiene un if {
que dependiendo el valor del texto del botón actúa de //texto.text = "Chao";
una u otra manera, el código es:
//Debug.Log(texto.text);
def button_1(self):
global texto1
if (texto.text == "Hola")
if texto1=="Hola":
{
texto1 = "Chao"
texto.text = "Chao";
self.button1 = Button(self,
}
text=texto1, command=self.button_1,
else
width=10 ) {
self.button1.grid(row=0, texto.text = "Hola";
column=0) }
else: }
texto1 = "Hola"
self.button1 = Button(self, Luego para el segundo botón, se necesita abstraer el
text=texto1, command=self.button_1, texto de inputText, y luego imprimiro en el textView,
width=10 ) entonces su codigo serán dos funciones, una que se
self.button1.grid(row=0, encargue de abstraer el texto y otra que lo muestre,
column=0) entonces será:
El código del botón 2, simplemente obtiene el valor string x;
del inputText, y lo imprime en su respectivo public void CambiaTexto(Text texto)
textView, entonces: {
//texto.text = "Chao";
def button_2(self):
x=self.entry1.get() Debug.Log(texto.text);
self.label1["text"]=(x) x = texto.text;
La función que tienen las sliders solo imprime su
valor, su código es: //texto2.text = "Hola";

def slider_1(self,y): }
#y = self.slider1.getvar() public void CambiaTexto2(Text texto)
print(y) {
//texto.text = "Chao";
Y para inicializar la interfaz, se obtiene su respectiva
función donde inicialmente se da los valores de ancho
texto.text=x;
y largo totales de la interfaz además de su título,
entonces quedará: //texto2.text = "Hola";
class Root(Tk):
def __init__(self):
}
super(Root,self).__init__()
self.title("Lab3")
Finalmente, para los sliders, primero se obtiene el
self.geometry("100x300")
valor tipo value de este objeto con una función, y en
• Unity3D otra se imprime a su text correspondiente. Entonces
su código es:
En unity3D la manera de programar cada elemento de public void varia(Slider variable)
interfaz, es bastante diferente a la que se conocieron {
anteriormente, ya que no se programan por funciones,

4
//texto.text = "Chao";

x = string.Format("{0:N2}",
variable.value);
Debug.Log(x);

//texto2.text = "Hola";

}
public void CambiaTexto(Text texto)
{
//texto.text = "Chao";

texto.text = x;

//texto2.text = "Hola";

Lo interesante de este entorno de programación


aparte de que permite animar todo, es la forma en que
se llaman las funciones para específicamente un
objeto, ya que necesita de un archivo c#, un objeto
vacio que contenga dicho archivo, luego llamarlo en
su función oncClick (Para botones) u
onValueChanged(Para sliders), para posteriormente
encontrar las funciones ya del archivo c# y llamarlas
dependiendo de su requerimiento.
Imagen N°1. Interfaz en MATLAB.

• Procedimiento práctico.

Primero se mostrará las diferentes interfaces que se


obtienen en los 3 lenguajes, en seguida s dirán las
diferencias, y sus respectivas comparaciones entre
una y otra.

Imagen N°2. Interfaz en Pythoon37

5
- https://la.mathworks.com/

- https://www.python.org/

- https://unity.com/es

- https://visualstudio.microsoft.com/es/

Imagen N°3. Interfaz en Unity3D

Como se puede ver la interfaz mas dinamica es la de


Unity3D sin dudas, mas sin embargo la mas facil de
trabajar es la de MATLAB, ya que no hay tantas
vueltas para progrmar un solo objeto, cuestion que en
Unity3D no pasa.

Sobre python la forma de progrmacion interfaces se


complica un poco con respecto a MATLAB, no es tan
amena con el usuario ademas de que su producto
final generalmente no es tan estetico como el de
Unity3D, pero su forma de programar tampoco es tan
compleja como este.

VI. Análisis de resultados.

• Se puede observar que el producto final mas


simple es de Matlab, ya que el de Python por
lo menos permite diseños 3D dependiendo
de la librería empleada, pero Unity, es todo
lo contrario.

• La forma más fácil de programar interfaces


de usuario entre estos tres entornos es la de
MATLAB.

• Al final todos los entornos de programación,


contienen funciones con el propósito de dar
vida a sus objetos.

VII. Conclusiones.

1. Por estética y diseño es mejor diseñar


interfaces en Unity3D

2. Por facilidad de programación, es mejor usar


un entorno como MATLAB

3. Es necesario tener conocimientos fuertes en


los tres entornos de programación.

VIII. Referencias.

Вам также может понравиться