• 大小: 3.08MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-19
  • 语言: C/C++
  • 标签: c++  画图  函数  openGL  

资源简介

本压缩包里有用Vc++缩写的用迭代法计算信道容量,并画出信道容量随着某一个参数变化时的曲线。开发要用openGL,里面有关于它的一些例子,学起来很容易。自己可以用它画出任意图形的。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 

#pragma comment (lib “opengl32.lib“)
#pragma comment (lib “glaux.lib“)

#include 
#include 
#include 

float shuju1[100];
float shujus[100];
float shuju2[100];
float A_B(float pp);
void fun();
float b=0.001f;
const GLfloat factor = 1.0f;
void myDisplay(void)
{
int i=0;
    GLfloat x;
fun();

    glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0f 0.0f 0.0f);

glBegin(GL_LINES);
        glVertex2f(-1.1f 0.0f);
        glVertex2f(1.1f 0.0f);        
glVertex2f(-1.0f0.0f);
glVertex2f(-1.0f1.0f);
        glVertex2f(0.0f 0.0f);
        glVertex2f(0.0f 1.0f);        

    glEnd();
glBegin(GL_LINES);
    glVertex2f(-0.52f-0.1f);
glVertex2f(-0.48f-0.1f);
glVertex2f(-0.52f-0.15f);
glVertex2f(-0.48f-0.15f);
glVertex2f(-0.5f-0.1f);
glVertex2f(-0.5f-0.15f);
glEnd();
glBegin(GL_LINES);
    glVertex2f(0.525f-0.1f);
glVertex2f(0.475f-0.1f);
glVertex2f(0.525f-0.15f);
glVertex2f(0.475f-0.15f);
glVertex2f(0.49f-0.1f);
glVertex2f(0.49f-0.15f);
glVertex2f(0.51f-0.1f);
glVertex2f(0.51f-0.15f);
glEnd();

    glBegin(GL_LINE_STRIP);
    for(x=0.01f/factor; x<=1.0f/factor; x+=0.01f)
    {
        glVertex2f(x*factor-1.0 shuju1[i++]*factor);

    }
    glEnd();
glColor3f(0.0f 1.0f 0.0f);
glBegin(GL_LINE_STRIP);
    for(x=0.01f/factori=0; x<=1.0f/factor; x+=0.01f)
    {
        glVertex2f(x*factor shuju2[i++]*factor);
    }
    glEnd();
    glFlush();
}

    
int main(void)
{
    auxInitDisplayMode(AUX_SINGLE|AUX_INDEX);
    auxInitPosition(0 0 800 800);
    auxInitWindow(L““);
// glutCreateWindow(“第一个OpenGL程序“);
    myDisplay();
    Sleep(10 * 1000);
    return 0;
}




void fun()
{

int ii;
float pp=0.0f;
float qq=1-pp;
    printf(“信道矩阵为:\n“);
printf(“ p_yx[0][0]=1    p_yx[0][1]=0\n p_yx[1][0]=p    p_yx[1][1]=1-p\n“);
printf(“迭代精度为:%f\n“b);
printf(“下面的数据,左边的是程序题1的数据,中间的是p的值,右边的是程序题2的数据\n“);
for(ii=0;ii<100;ii++)
{
pp=pp+0.01f;
qq=1-pp;
shuju1[ii]=A_B(pp);
shujus[ii]=(-pp)*log(pp)/log(2.0)+(-qq)*log(qq)/log(2.0);
shujus[ii]=shujus[ii]/(1-pp);
shuju2[ii]=log(1+pow(2-shujus[ii]))/log(2.0);
printf(“%f------%f------%f\n“shuju1[ii]ppshuju2[ii]);
}
printf(“上面的数据,左边的是程序题1的数据,中间的是p的值,右边的是程序题2的数据\n“);
}


float A_B(float pp)

register int ij;
    register int k;
    int N=2M=2;//行,列
    float *p=NULL;
    float *q=NULL;
    float *d=NULL;
    float *a=NULL;
    float *s=NULL;   //s数组为各行概率累加求和
    float **p_yx=NULL;   //二维数组p_yx存放信道矩阵
    float CumaxILIU; //C为信道容量,b为迭代精度
    p=(float *)calloc(Nsizeof(float));   //初始化需要用到的数组
    q=(float *)calloc(Msizeof(float));
    d=(float *)calloc(Nsizeof(float));
    a=(float *)calloc(Nsizeof(float));
    s=(float *)calloc(Nsizeof(float));
    p_yx=(float **)calloc(Nsizeof(float

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        4958  2012-05-07 10:10  assign3  readme.txt
     文件      743040  2012-05-06 17:22  OpenGL2.0.rar
     目录           0  2012-05-08 09:20  OpenGL2.0\
     目录           0  2012-05-08 09:20  OpenGL2.0\OpenGL2.0\
     目录           0  2012-05-08 09:20  OpenGL2.0\OpenGL2.0\gl\
     文件       69083  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GL.H
     文件       12024  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLAUX.H
     文件     1312394  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLAUX.LIB
     文件       12794  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLext.H
     文件      315904  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLU.DLL
     文件       18282  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLU.H
     文件       35606  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\glu.lib
     文件       49514  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLU32.LIB
     文件      154624  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLUT.DLL
     文件       79654  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\glut.lib
     文件      237568  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLUT32.DLL
     文件       69580  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\GLUT32.LIB
     文件     1213440  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\OPENGL.DLL
     文件      242802  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\opengl.lib
     文件      336274  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\OPENGL32.LIB
     文件       17183  2005-10-19 15:32  OpenGL2.0\OpenGL2.0\gl\WGLEXT.H
     目录           0  2012-05-08 09:21  assign3_7\
     文件        4958  2012-05-07 10:10  assign3_7\assign3  readme.txt
     文件        4315  2012-05-06 17:10  assign3_7\assign3_7.dsp
     文件         526  2012-05-06 17:05  assign3_7\assign3_7.dsw
     文件       50176  2012-05-08 09:02  assign3_7\assign3_7.ncb
     文件       48640  2012-05-08 09:02  assign3_7\assign3_7.opt
     文件         252  2012-05-08 08:55  assign3_7\assign3_7.plg
     目录           0  2012-05-08 09:21  assign3_7\Debug\
     文件      245842  2012-05-07 21:37  assign3_7\Debug\assign3_7.exe
     文件      376104  2012-05-07 21:37  assign3_7\Debug\assign3_7.ilk
............此处省略11个文件信息

评论

共有 条评论