```Assignments 1:``` Grafica del seno con ruido. Abrimos un nuevo

Anuncio
'''Assignments 1:''' Grafica del seno con ruido.
Abrimos un nuevo fichero .uir, una interfaz de usuario.
Creamos un panel en Create-panel, y vamos a ir añadiendo los elementos de nuestro panel:
- Para crear el grafico donde se dibujara el seno: Create-graph.
- Con create-numeric vamos a introducir: Nº de ciclos, Amplitud del seno, Amplitud del ruido,
Origen en x, Origen en y:
- Nº de ciclos: A constant name lo llamaremos '''ciclos''' y sera una variable int.
- Amplitud de seno: A constant name lo llamaremos '''aseno''', sera una double y ponemos
un incremento de 0.1
- Amplitud de ruido: A constant name lo llamaremos '''aruido''', sera una double y ponemos
un incremento de 0.1
- Origen en x: A constant name lo llamaremos '''origenx''', sera una double y ponemos un
incremento de 0.1
- Origen en y: A constant name lo llamaremos '''origeny''', sera una double y ponemos un
incremento de 0.1
- Con create- color numeric añadimos para elegir el color de la grafica. A constant name la
llamamos '''color'''.
- Para crear los botones de acciones usamos create-command button:
- Boton PINTAR: callback=PINTAR
- Boton BORRAR: callback=BORRAR
- Boton SALIR: callback=SALIR
- Al panel le ponemos de constant name PANEL.
Ahora generamos el codigo: Code-Generate- All code.
Al generar el codigo dejamos la variable de panel como propone el programa: panelhandle.
Y decimos que nuestra funcion para salir del programa sea SALIR.
Ahora vamos a ver las modificaciones en el código:
Al inicio, después de los includes, definimos las variables:
-
static int panelHandle;
double seno[1000] ;
double noise[1000] ;
double suma[1000] ;
Y después, en la CALLBACK PINTAR, definimos las variables antes del switch:
-
int ciclos;
double aseno;
double anoise;
double origenx;
double origeny;
int color;
int i;
Luego cogemos los valores de pantalla y los asignamos a sus respectivas variables:
-
GetCtrlVal (panelHandle, ciclos, &ciclos) ;
GetCtrlVal (panelHandle, aseno, &aseno) ;
GetCtrlVal (panelHandle, anoise, &anoise) ;
GetCtrlVal (panelHandle, origenx, &origenx) ;
GetCtrlVal (panelHandle, origeny, &origeny) ;
GetCtrlVal (panelHandle, color, &color) ;
Y ya ponemos las funciones del seno y del ruido:
-
SinePattern (1000, aseno, origenx, ciclos, seno);
WhiteNoise (1000, anoise, 1, noise);
Las sumamos:
-
for (i=0; i<999;i++)
suma[i]=seno[i]+noise[i];
Y la dibujamos:
-
PlotY (panelHandle, PANEL_GRAPH, suma, 1000, VAL_DOUBLE, VAL_THIN_LINE,
VAL_EMPTY_SQUARE, VAL_SOLID, 1, color);
Descargar