glut绘制正余弦曲线

1,下载最新的glut动态库,1998年发布,并且不再更新: https://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

2,编译openglDemo源码:参见命令行:cl.exe openTran.cpp /EHsc /I"./" glut32.lib /link /LIBPATH:"./GL"

3,程序效果:

4,源码示例:

C++

#include <math.h>#include "GL/glut.h"#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )void init(void){glClearColor(0.0, 0.0, 0.0, 0.0);glShadeModel(GL_SMOOTH);
}void myDisplay(void)
{glClear(GL_COLOR_BUFFER_BIT);//glTranslatef(0.8, 0.0, 0.0);glBegin(GL_TRIANGLES);glColor3f(1.0, 0.0, 0.0);glVertex2f(-0.5, -0.5);glColor3f(0.0, 1.0, 0.0);glVertex2f(0.5, -0.5);glColor3f(0.0, 0.0, 1.0);glVertex2f(0.5, 0.5);glEnd();float PI=3.1415926f;glBegin(GL_LINE_STRIP);for(float x=-5*PI;x<5*PI;x+=0.01f){//glVertex2f(x/(5*PI),sin(x));glColor3f(0.0, 1.0, 0.0);glVertex2f(x/(5*PI),sin(x));glColor3f(0.0, 1.0, 0.0);glVertex2f(x/(5*PI), 0);}glEnd();glFlush();
}void myReshape(GLsizei w, GLsizei h)
{glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();if (w <= h)gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w);elsegluOrtho2D(-1.0, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5);glMatrixMode(GL_MODELVIEW);
}int main(int argc, char ** argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowPosition(200, 200);glutInitWindowSize(800, 800);glutCreateWindow("triangle");init();glutReshapeFunc(myReshape);glutDisplayFunc(myDisplay);glutMainLoop();return 0;
}

C

//#include <GL/glut.h> #include <stdio.h>
#include <stdlib.h>
#include <unistd.h>#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h> // gcc -framework OpenGL -framework GLUT -framework Foundation -o opengl opengl.c#define __LOG__
#ifdef __LOG__
#define log(format,...)  printf("LOG:[%s][%03d][%s][%s][%s]"format"\n", __FILE__, __LINE__, __DATE__, __TIME__, __FUNCTION__, ##__VA_ARGS__)
#else
#define log(format,...)
#endifvoid init(void)
{glClearColor(0.0, 0.0, 0.0, 0.0);//设置背景颜色为黑色glShadeModel(GL_SMOOTH);//设置为光滑明暗模式
}
void myDisplay(void)
{glClear(GL_COLOR_BUFFER_BIT);// 将缓存清除为预先的设置值,即黑色//glTranslatef(0.8, 0.0, 0.0);//平移函数,暂时可以不用glBegin(GL_TRIANGLES);//开始画三角形glColor3f(1.0, 0.0, 0.0);//设置第一个顶点为红色glVertex2f(-1.0, -1.0);//设置第一个顶点的坐标glColor3f(0.0, 1.0, 0.0);//设置第二个顶点为绿色glVertex2f(0.0, -1.0);//设置第二个顶点的坐标glColor3f(0.0, 0.0, 1.0);//设置第三个顶点为蓝色glVertex2f(-0.5, 1.0);//设置第三个顶点的坐标glEnd();//三角形结束glFlush();//强制OpenGL函数在有限时间内运行
}
void myReshape(GLsizei w, GLsizei h)
{glViewport(0, 0, w, h);//设置视口glMatrixMode(GL_PROJECTION);//指明当前矩阵为GL_PROJECTIONglLoadIdentity();//将当前矩阵置换为单位阵if (w <= h)gluOrtho2D(-1.0, 1.5, -1.5, 1.5*(GLfloat)h / (GLfloat)w);//定义二维正视投影矩阵elsegluOrtho2D(-1.0, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5);glMatrixMode(GL_MODELVIEW);//指明当前矩阵为GL_MODELVIEW
}
void myKeyFunc (unsigned char key, int x, int y)
{printf("myKeyFunc key = char[%c] [0x%x]\n", key, key);//fflush(stdout);switch (key) {case 27:exit(0);break;default:break;}
}
int main(int argc, char ** argv)
{/*初始化*/glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓冲、RGB模式glutInitWindowSize(960, 540);glutInitWindowPosition(200, 200);glutCreateWindow("GL_TRIANGLES");//窗口标题init();printf("GL_VERSION %s\n", (char *)glGetString(GL_VERSION));printf("GL_VENDOR %s\n", (char *)glGetString(GL_VENDOR));printf("GL_RENDERER %s\n", (char *)glGetString(GL_RENDERER));printf("GL_EXTENSIONS %.64s\n", (char *)glGetString(GL_EXTENSIONS));/*绘制与显示*/glutReshapeFunc(myReshape);//窗口大小发生改变时采取的行为glutDisplayFunc(myDisplay);//显示绘制图形glutKeyboardFunc(myKeyFunc);glutMainLoop();//循环return(0);
}

C

#include <stdio.h>
#include <stdlib.h>// #include <GL/glut.h>#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h> #define Width 64
#define Height 64
GLubyte image[Height][Width][3];//rgb
GLint height;
void image_create()//在内存中创建一幅棋盘图像的矩阵
{  int c;  for(int i=0;i<Height;i++)  {  for(int j=0;j<Width;j++)  {  c=(((i&0x8)==0)^((j&0x8)==0))*255;  image[i][j][0]=(GLubyte)c;  image[i][j][1]=(GLubyte)c;  image[i][j][2]=(GLubyte)c;  }  }
}
void setup_image()
{  glClearColor(1.0f, 1.0f, 1.0f, 1.0f);  glShadeModel(GL_FLAT);  image_create();  glPixelStorei(GL_UNPACK_ALIGNMENT,1);//边界对齐
}
void image_motion(int x,int y)
{  glRasterPos2i(x,y);  glPixelZoom(2.0,2.0);  glCopyPixels(0,0,Width,Height,GL_COLOR);  glFlush();
}
void image_display()
{  glClear(GL_COLOR_BUFFER_BIT);  glRasterPos2i(0,0);//和位图一样先设好光栅位置   glDrawPixels(Width,Height,GL_RGB,GL_UNSIGNED_BYTE,image);//绘制   glFlush();  image_motion(2*Width,2*Height);
}
void reshape_image(int w, int h)
{  if (h == 0)  h = 1;  height=h;  glViewport(0, 0, (GLsizei)w, (GLsizei)h);  glMatrixMode(GL_PROJECTION);  glLoadIdentity();  gluOrtho2D(0.0, (GLdouble)w, 0.0, (GLdouble)h);  glMatrixMode(GL_MODELVIEW);  glLoadIdentity();
}  int main_image()
{  glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);  glutInitWindowSize(100, 100);  glutCreateWindow("text");  setup_image();  glutDisplayFunc(image_display);  glutReshapeFunc(reshape_image);  glutMainLoop();  return 0;
}  int main(int argc, char ** argv)
{/*初始化*/glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//单缓冲、RGB模式glutInitWindowSize(960, 540);glutInitWindowPosition(200, 200);glutCreateWindow("三角形");//窗口标题//init();/*绘制与显示*/glutReshapeFunc(reshape_image);//窗口大小发生改变时采取的行为glutDisplayFunc(image_display);//显示绘制图形glClearColor(1.0f, 1.0f, 1.0f, 1.0f);glutMainLoop();//循环return(0);
}

glut绘制正余弦曲线相关推荐

  1. 绘制正余弦曲线中的sin(x),cos(x)的使用

    目录 一. 基础知识 1.1 头文件 1.2 原型 1.3 参数 1.4 返回值 二.使用 1. 坐标与弧度的对应关系 一. 基础知识 1.1 头文件 #include <math.h> ...

  2. C++实现glut绘制点、直线、多边形、圆

    C++实现glut绘制点.直线.多边形.圆 必备环境 glut.h 头文件 glut32.lib 对象文件库 glut32.dll 动态连接库 程序说明 C++实现了用glut画点.画直线.画多边形和 ...

  3. css动画-模拟正余弦曲线

    今天就写一个css3抛物线的动画吧= = 从左到右的抛物线动画,我们就暂且把动作分为匀速向右运动和变速的上下运动. 水平匀速运动我们可以利用 translateX(x):定义 2D 转换,沿着 X 轴 ...

  4. matlab绘制四棱台,几何画板绘制正四棱台的详细步骤

    最近很多网友表示自己不清楚几何画板怎样绘制正四棱台的操作,而本篇文章就来给大家讲解几何画板绘制正四棱台的详细步骤,大家都来一起学习吧. 几何画板绘制正四棱台的详细步骤 1.新建一个几何画板文件.绘制线 ...

  5. matlab绘制四棱台,几何画板绘制正四棱台的图文教程

    最近很多使用几何画板的朋友们询问绘制正四棱台的相关操作,而笔者今日在此就介绍了几何画板绘制正四棱台的图文操作内容哦. 几何画板绘制正四棱台的图文教程 1.新建一个几何画板文件.绘制线段AB和BC.依次 ...

  6. #使用Python的turtle绘制正六边形、叠边形

    1.#Python的turtle绘制正六边形 代码: len=100 #表示边长像素 import turtle as t #正六边形内角都是120度,外角60度 for i in range(6): ...

  7. c语言画正弦余弦函数,用C/C++绘制出余弦曲线和正弦曲线(不使用库函数)

    用C/C++绘制出余弦曲线和正弦曲线(不使用库函数) 用C/C++绘制出余弦曲线和正弦曲线(不使用库函数) - 余弦函数 - 正弦函数 #include #include #define PI 3.1 ...

  8. 【matplotlib库】利用matplotlib库绘制正余弦函数曲线的python程序,标注X、Y轴及标题|CSDN创作打卡

    使用python中的第三方库matplotlib绘制正余弦函数图形,并标注x,y轴以及标题等 ,绘制方法与matlab类似,可以说这里的matplotlib库便是Python中的matlab 程序代码 ...

  9. 该怎样用几何画板绘制正五边形呢

    在学习几何的过程中,我们不可避免的会遇到正五边形.正五边形是五条长度相等的线段,首尾相连构成的一个封闭形状且内角相等的平面图形.现在很多的老师在使用多媒体教程的过程中,都会用几何画板来绘制正五边形辅助 ...

最新文章

  1. 使用axis开发web service服务端
  2. ResNet及其变体结构梳理与总结
  3. CentOS6.2安装LAMP+DRUPAL网站(2)
  4. Linux2.6内核--抢占
  5. 成功解决internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'express'
  6. 今日c++练手之寻找n个连续的合数
  7. ASP.NET Core 防止跨站请求伪造(XSRF\/CSRF)攻击
  8. GDB调试精粹及使用实例
  9. 求解平稳分布matlab,计算二阶马尔可夫信源的熵
  10. 阿里云创客+千人创投会 无人机项目夺冠
  11. 使用vagrant快速创建Linux(centos/7)
  12. Mysql中,int(10)和int(11)的区别
  13. cesium api 学习之旋转角 heading(yaw)、pitch、roll
  14. PTA-哥尼斯堡的“七桥问题” (20 分)
  15. 如何合并磁盘分区 windows7调整分区大小方法
  16. idea使用git推送、下载失败error setting certificate verify locations:
  17. 电路邱关源学习笔记——1.6受控源
  18. ffmpeg推流实现实时播放监控画面(rtsp to rtmp)
  19. matlab决策树工具箱使用,matlab决策树示例
  20. ieee13节点算例

热门文章

  1. 解决CSS position:fixed 抖动问题
  2. 华为云主机配置yum
  3. 【架构】六边形架构理解
  4. 些事一转身就是一辈子
  5. 三维仿真在智慧城市中的运用,机械臂智能垃圾分类
  6. S32DS IDE使用Tips--参考汽车电子expert成长之路
  7. Java Web之Servlet入门
  8. putty的安装使用
  9. cellpose-planer
  10. 华为MPLS VN Instance 配置实验