日期:2014-05-17  浏览次数:21188 次

请各位高手看一下,关于C#绘制心电图的~
我需要实现读取心电数据(.ecg格式,二进制文件),然后每读16位转成十进制存到一个short型的数组中(关于数据说一下,我要显示30秒的动态波形,每一秒有360个点,一个十进制数据代表一个点的纵坐标的值,也就是说要绘360*30个点),将这些点连接起来就是那条动态曲线。以下是我根据别人的代码修改过的,但是波形不动,请各位牛人帮我看一下,我在这里不胜感激!(网格部分无所谓,主要是波形)

namespace WindowsFormsApplication4
{
    public partial class Form8 : Form
    {
        public Form8()
        {
            InitializeComponent();
        }


        int 网格间距 = 12; //网格间距
        int 网格偏移 = 0;   //网格偏移
        Pen 网格颜色 = new Pen(Color.FromArgb(0x00, 0x80, 0x40));
        Pen 曲线颜色 = new Pen(Color.Lime);
        private void Form8_Paint(object sender, PaintEventArgs e)
        {
            short[] data = new short[10800];
            FileStream fs = new FileStream("c://a.ecg", FileMode.Open);
            BinaryReader r = new BinaryReader(fs);
            for (int i = 0; i < 10800; i++)
            {
                data[i] = r.ReadInt16();
            }
            fs.Close();
            
            e.Graphics.FillRectangle(Brushes.Black, 0,0,800,640);
            for (int i = 800 - 网格偏移; i >= 0; i -= 网格间距)
                e.Graphics.DrawLine(网格颜色, i, 0, i, 640);
            //绘制横线
            for (int i = 640; i >= 0; i -= 网格间距)