直接上代码:

#include <stdio.h>
#include <GL/glut.h>
#include <math.h>void myDisplay()
{glClear(GL_COLOR_BUFFER_BIT);glRectf(-0.5f, -0.5f, 0.5f, 0.5f);glFlush();
}// 画圆
const int n = 50;
const GLfloat R = 0.5f;
const GLfloat Pi = 3.1415926536f;void DrawArc()
{int i;glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_POLYGON);// 面for (i = 0; i < n; ++i){glVertex2f(R*cos(2 * Pi / n*i), R*sin(2 * Pi / n*i));}glEnd();glFlush();
}// 绘制五角星
void DrawFiveStarts()
{GLfloat a = 1 / (2 - 2 * cos(72 * Pi / 180));GLfloat bx = a*cos(18 * Pi / 180);GLfloat by = a*sin(18 * Pi / 180);GLfloat cy = -a*cos(18 * Pi / 180);GLfloat PointA[2] = { 0, a };GLfloat PointB[2] = { bx, by };GLfloat PointC[2] = { 0.5, cy };GLfloat PointD[2] = { -0.5, cy };GLfloat PointE[2] = { -bx, by };glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_LINE_LOOP);glVertex2fv(PointA);glVertex2fv(PointC);glVertex2fv(PointE);glVertex2fv(PointB);glVertex2fv(PointD);glEnd();glFlush();
}// 正弦函数绘制
const GLfloat factor = 0.1f;
void DrawSinFunc()
{GLfloat x;glClear(GL_COLOR_BUFFER_BIT);glBegin(GL_LINES);// X轴glVertex2f(-1.0f, 0.0f);glVertex2f(1.0f, 0.0f);// Y轴glVertex2f(0.0f, -1.0f);glVertex2f(0.0f, 1.0f);glEnd();glBegin(GL_LINE_STRIP);for (x = -1.0f / factor; x < 1.0f / factor; x += 0.1f){glVertex2f(x*factor, sin(x)*factor);}glEnd();glFlush();
}// 绘制点
void DrawPoint()
{glClear(GL_COLOR_BUFFER_BIT);glPointSize(10.0f);glBegin(GL_POINT);glVertex2f(0.0f, 0.0f);glVertex2f(0.5f, 0.5f);glEnd();glFlush();
}// 绘制直线
void DrawLine()
{glClear(GL_COLOR_BUFFER_BIT);glEnable(GL_LINE_STIPPLE);// 启动画线模式(虚线)glLineStipple(2, 0x0f0f);glLineWidth(10.0f);glBegin(GL_LINES);glVertex2f(0.0f, 0.0f);glVertex2f(0.5f, 0.5f);glEnd();glFlush();
}// RGBA颜色
void DrawRGBA()
{glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0f, 1.0f, 1.0f);glRectf(-0.5f, -0.5f, 0.5f, 0.5f);glFlush();
}int main(int argc, char* argv[])
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow("hello World");glutDisplayFunc(&DrawRGBA);// 设置显示方式glutMainLoop();// 消息循环return 0;
}

OPENGL 简单图形绘制相关推荐

  1. c++之openGL在VS中的配置及简单图形绘制

    VS中openGL的配置 相关资源下载: 链接:https://pan.baidu.com/s/1hRlxbckgLsNiS87k5CPvLg 提取码:tz87 以vs2010为例: 将下载的压缩包解 ...

  2. WebGL(三)——学习Canvas及简单图形绘制

    WebGL(三)--学习Canvas及简单图形绘制 Canvas简介 canvas是HTML5新增的一个可以使用javascript脚本在其中绘制图像的HTML元素(容器),它可以用来制作图像.动画, ...

  3. 图解opengl 3D 图形绘制实例

    VC6 下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 opengl环境配置 http://blog.csdn.net/bcbo ...

  4. OpenGL 基础图形绘制与投影变换

    本文参考<Computer Graphics Using OpenGL>,第一个例子绘制了 1. 参数定义的House 2. a flurry of filled rectangles 3 ...

  5. HTML5画布Canvas线段、矩形、弧形及贝塞尔曲线等简单图形绘制

    tip:有问题或者需要大厂内推的+我脉脉哦:丛培森 ٩( 'ω' )و HTML5中最有意思的就是这个canvas了 通过它我们可以画自己想要的图形 它也是十分重要的技术 应用于游戏.图表等等 或者绘 ...

  6. opengl三维图形绘制_Python matplotlib绘图示例 - 绘制三维图形

    Python matplotlib模块是扩展的MATLAB的一个绘图工具库.它可以绘制各种图形,下面就学习了下Python中的matplotlib模块,如何绘制三维图形. 示例代码一: # codin ...

  7. Mathematica 训练课(3)- 简单图形绘制

    本次仅仅借助Plot[]函数来说明mathematica的基本用法,可以看到Plot[]的用法非常之多,可以按照自己的需要选取合适的函数形式. ①图形函数中最有代表性的函数为Plot[表达式,{变量, ...

  8. MATLAB简单图形绘制——小蝴蝶

    syms x0 y0 for i=1:3 t=0:0.1:40*pi; s=1; if i==1x0=1;y0=1; elseif i==2x0=15;y0=15; else x0=30;y0=30; ...

  9. 使用MarkDown+mermaid-JS绘制简单图形

    文章目录 写在前面 简介 流程图(Flowchart) 不带样式的流程图 带样式的流程图(程序框图) 一个例子(辗转相除法) 另一个例子(唐朝三省六部制) 时序图 状态图 类图 甘特图(Gantt) ...

最新文章

  1. 基于Co-Attention和Co-Excitation的少样本目标检测 | NeurIPS 2019
  2. TCP 三次握手、四手挥手,这样说你能明白吧!
  3. SMPP Java示例(客户端)
  4. Linux第三周作业
  5. cuSPARSE库:(八)cusparseGetStream()
  6. python多进程关闭socket_Python并发编程-多进程socketserver简易版
  7. php面试题之一——HTML+CSS(基础部分)
  8. OpenCart如何添加货币
  9. C++ int string 转换
  10. [总结] Min-Max容斥学习笔记
  11. 小学计算机第一册下教案,广东省小学信息技术第一册(下)全册教案
  12. 经过了多种方法的尝试,终于找到Quartus破解成功但是没有办法编译的解决方法
  13. android广告id,谷歌广告 ID 获取
  14. IT运维的365天--007PC端微信图片不能正常接收发送
  15. matlab分栏画图,Tkinter编程应知应会(19)-分栏窗口控件PanedWindow
  16. JS与C语言的数据类型转换
  17. 暴力破解键盘上所有组合的密码需要多久?
  18. excel切片器_大部分人都不知道Excel切片器还能这么用,建议收藏
  19. Android开发笔记:关于SeekBar在刷新使用中的一些问题
  20. 解决VC6.0出现的Error spawning cl.exe错误

热门文章

  1. 【Eureka】eureka的搭建注册(新手搭建,大佬见谅)
  2. 恭喜惠州市靖元五金塑胶制品设计有限公司与华信环球再次达成合作!
  3. 使用frps建立内网穿透从而实现外界连接内网电脑的全教程
  4. 【AE教程】AI文件导入AE方法
  5. 【为您的 Android 应用添加图片】
  6. 技术文档写作风格指南
  7. 前端框架千千万,抓住两条主线成一半
  8. 英语常见缩写,职业,公司
  9. Android--播放视频横竖屏切换的2种方式
  10. 滴滴2023秋招笔试 老张的美数课 (C++ DP)