⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 graph.cpp

📁 QAM module to use in Java with an easy interface and powerful performance
💻 CPP
字号:
//---------------------------------------------------------------------------


#pragma hdrstop

#include "Graph.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

Graph::Graph()
{
        pdparraysize=0;
        pdp=0;
}


void __fastcall Graph::AttachPlot(Plotdata *pd)
{
        Plotdata **tpdpa;
        tpdpa = new Plotdata *[pdparraysize];
        for(int i=0;i<pdparraysize;i++)
        {
                tpdpa[i]=pdp[i];
        }
        if(pdp){delete [] pdp;pdp=0;}

        pdp=new Plotdata *[pdparraysize+1];

        for(int i=0;i<pdparraysize;i++)
        {
                pdp[i]=tpdpa[i];
        }
        delete [] tpdpa;
        pdp[pdparraysize]=pd;
        pdparraysize++;
}

void __fastcall Graph::DisplayGraph(TImage *imgage)
{
        int ix,iy;
        Graphics::TBitmap *bm = new Graphics::TBitmap;
        bm->Width = imgage->Width;
        bm->Height = imgage->Height;
        bm->HandleType = bmDIB;
        bm->Canvas->Pen->Color=clGray;
        switch (gSettings.DemodMajor.ConstalationSize)
        {
                case 16:
                        //16QAM constelation
                        bm->Canvas->MoveTo(bm->Width/2,0);
                        bm->Canvas->LineTo(bm->Width/2,bm->Height);
                        bm->Canvas->MoveTo(0,bm->Height/2);
                        bm->Canvas->LineTo(bm->Width,bm->Height/2);
                        bm->Canvas->MoveTo(bm->Width/4,0);
                        bm->Canvas->LineTo(bm->Width/4,bm->Height);
                        bm->Canvas->MoveTo(0,bm->Height/4);
                        bm->Canvas->LineTo(bm->Width,bm->Height/4);
                        bm->Canvas->MoveTo(0.75*bm->Width,0);
                        bm->Canvas->LineTo(0.75*bm->Width,bm->Height);
                        bm->Canvas->MoveTo(0,0.75*bm->Height);
                        bm->Canvas->LineTo(bm->Width,0.75*bm->Height);
                        for(int j=0;j<pdparraysize;j++)
                        {
                                for(int i=0;i<pdp[j]->size;i++)
                                {
                                        ix=bm->Width/2+(int)(0.530330085*bm->Width*pdp[j]->x[i]);  //0.5*3*sqrt(2)/4
                                        iy=bm->Height/2-(int)(0.530330085*bm->Height*pdp[j]->y[i]);
                                        if((ix>0)&&(iy>0)&&(ix<bm->Width)&&(iy<bm->Height))bm->Canvas->Pixels[ix][iy]=pdp[j]->color;
                                }
                        }
                break;
                case 64:
                //for 64 symbol constelation
                for(int i=1;i<=7;i++)
                {
                        bm->Canvas->MoveTo((double)i*(double)bm->Width/8,0);
                        bm->Canvas->LineTo((double)i*(double)bm->Width/8,bm->Height);
                        bm->Canvas->MoveTo(0,(double)i*(double)bm->Height/8);
                        bm->Canvas->LineTo(bm->Width,(double)i*(double)bm->Height/8);

                        for(int j=0;j<pdparraysize;j++)
                        {
                                for(int i=0;i<pdp[j]->size;i++)
                                {
                                        ix=bm->Width/2+(int)(0.618718433*bm->Width*pdp[j]->x[i]);  //0.5*7*sqrt(2)/8
                                        iy=bm->Height/2-(int)(0.618718433*bm->Height*pdp[j]->y[i]);
                                        if((ix>0)&&(iy>0)&&(ix<bm->Width)&&(iy<bm->Height))bm->Canvas->Pixels[ix][iy]=pdp[j]->color;
                                }
                        }
                }
                break;
                default :
                // Process for all other cases.
                ;
        }
        imgage->Picture->Bitmap=bm;
        delete bm;
        pdparraysize=0;
        if(pdp){delete [] pdp;pdp=0;}
}







Graph::~Graph()
{
        if(pdp){delete [] pdp;pdp=0;}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -