Skip to content
This repository has been archived by the owner on Jul 10, 2019. It is now read-only.
barbaragroa edited this page May 17, 2019 · 2 revisions

Informe Electronistagmografo:

Introducción

El programa desarrollado durante la asignatura de informática del curso 2018-2019, para ingeniería electrónica industrial y automática, consiste en una herramienta para facilitar la lectura de ficheros y su posterior representación mediante rectas. En este caso, el programa está enfocado en ayudar a un oftalmólogo a representar los datos obtenidos del nervio ocular durante una prueba, electronistagmografia, que dura entre sesenta y noventa minutos. Durante esta prueba el paciente se somete a ciertos estímulos luminosos y mediante la utilización de unos electrodos se mide el movimiento del nervio ocular, para su posterior estudio y representación.

Desarrollo

Durante la creación de este programa, consideré oportuno la utilización de componentes gráficos que me pudiese facilitar el código c, para ello empleé visual c. El código utilizado es este: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;

namespace electro2 { public partial class Form1 : Form { Pen lapiz_G = new Pen(Color.Blue); //Con el comando pen, le digo el color del lapiz con el que quiero dibujar Pen lapiz_Basico = new Pen(Color.Magenta, width: 2); //En este caso es igual al anterior, pero con la particularidad del comando wigth:2 que me indica el doble del grosor asignado Graphics G = null; static int Ix,Fx,Iy,Fy; string Fichero = "";

    private void Pintar_Click(object sender, EventArgs e)
    {
        Reinicia();  //Llamamos a la funcion que declaramos detras del codigo
        string linea;
        int incremento;
        System.IO.StreamReader fich_bin = new System.IO.StreamReader(Fichero);  //En este caso que lea los carcteres del fichero
        while ((linea = fich_bin.ReadLine()) != null)  //Los caracteres leidos se asignan a la string linea siempre y cuando no este vacio
        {
            incremento = Int32.Parse(linea);  //En esta linea te convierte los caracteres leidos en numeros enteros
            dibuja_Linea(Ix,Fx, Iy, Fy,lapiz_G );  //Llama la funcion dibuja_linea
            Ix = Fx;
            Iy = Fy;
            Fx = Fx + 20; //El 20 podria ser cualquier numero en este caso yo digo que este 20 corresponde a 1 seg
            Fy = panel2.Height - 40 -incremento;  //En este caso se resta el incremento porque la y sube nunca es negativa
            
        }
    }

    private void Reinicia()
    {
        Ix = 40; //Inicia el punto incial y el final de x como el mismo
        Fx = 40;
        Iy = panel2.Height - 40;
        Fy = panel2.Height - 40;
        panel2.Refresh();
        G = panel2.CreateGraphics();
        G.Clear(Color.LightYellow);
        dibuja_Linea(40, 40, 40, panel2.Height-40,lapiz_Basico); //Dibuja una linea vertical
        dibuja_Linea(40,panel2.Width-40, panel2.Height - 40, panel2.Height - 40,lapiz_Basico); //Dibuja una linea horizontal
    }

    private void dibuja_Linea(int pIx, int pFx, int pIy, int pFy, Pen t_lapiz)
    {
        Point[] puntos =                 //array
        {
            new Point (pIx,pIy),
            new Point (pFx,pFy)
        };
        
        G.DrawLines(t_lapiz, puntos);
    }

    private void Button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog fich_dialogo = new OpenFileDialog();
        if (fich_dialogo.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            Fichero = fich_dialogo.FileName;
            ruta_fichero.Text = Fichero;
        }

    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void ruta_fichero_TextChanged(object sender, EventArgs e)
    {

    }

    public Form1()
    {
        InitializeComponent();
    }

    private void Label1_Click(object sender, EventArgs e)
    {

    }

    private void Panel2_Paint(object sender, PaintEventArgs e)
    {

    }
}

} (El flujograma corrrespondiente se encuentra en la presentación power point)

Conclusiones

A pesar de la dificultad de utilizar un programa y una serie de recursos que durante este curso no hemos podido llegar a profundizar por falta de tiempo, este proyecto ha requerido una dedicación y una búsqueda constante. Pero no por eso ha sido un trabajo pesado ni un suplicio, más bien, lo consideraría un reto y una meta personal a alcanzar durante el primer año de carrera.

Clone this wiki locally