#include <GL/glut.h>
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
/*
三角形
GL_TRIANGLES(三个点成一个三角形)
GL_TRIANGLE_STRIP(相邻三点成一个三角形)
GL_TRIANGLE_FAN(同第二个,后2个和第一个成三角形)
四边形
GL_QUADS(四点一个)
GL_QUAD_STRIP(相邻四点一个)
多边形
GL_POLYGON
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
*/
void drawPoint(void)
{
int i;
glColor3f (0.0, 0.0, 1.0);
glPointSize(5);
glBegin(GL_POINTS);
for (i = 0; i < 7; i++)
glVertex2f (0.2 + ((GLfloat) i * 0.1), 0.6);
glEnd ();
}
void drawLines(void)
{
glColor3f(0.0,0.0,1.0);
glLineWidth(5);
glBegin(GL_LINES);
glVertex2f(0.0, 0.0);
glVertex2f(0.25,0.25);
glVertex2f(0.75,0.25);
glVertex2f(0.0,0.0);
glEnd();
}
void drawOneLine(GLfloat a,GLfloat b,GLfloat c,GLfloat d)
{
glBegin(GL_LINES);
glVertex2f(a,b);
glVertex2f(c,d);
glEnd();
}
void drawLineStripple(void)
{
glEnable (GL_LINE_STIPPLE);
glColor3f (0.0, 0.0, 1.0);
glLineStipple (1, 0x0101);  /*  dotted  */
drawOneLine (-0.25, 0.8, -0.75, 0.8);
glLineStipple (1, 0x00FF);  /*  dashed  */
drawOneLine (-0.25, 0.6, -0.75, 0.6);
glLineStipple (1, 0x1C47);  /*  dash/dot/dash  */
drawOneLine (-0.25, 0.4, -0.75, 0.4);
///* in 2nd row, 3 wide lines, each with different stipple */
glLineWidth (5.0);
glLineStipple (1, 0x0101);  /*  dotted  */
drawOneLine (-0.25, 0.2, -0.75, 0.2);
glLineStipple (1, 0x00FF);  /*  dashed  */
drawOneLine (-0.25, 0.0, -0.75, 0.0);
glLineStipple (1, 0x1C47);  /*  dash/dot/dash  */
drawOneLine (-0.25, -0.2, -0.75, -0.2);
glLineWidth (1.0);
///* in 4th row, 6 independent lines with same stipple  */
int i;
for (i = 0; i < 6; i++) {
drawOneLine (0.05 + ((GLfloat) i * 0.01), 0.5,
0.05 + ((GLfloat)(i+1) * 0.01), 0.5);
}
//
///* in 5th row, 1 line, with dash/dot/dash stipple    */
///* and a stipple repeat factor of 5                  */
glLineStipple (5, 0x1C47);  /*  dash/dot/dash  */
drawOneLine (50.0, 25.0, 350.0, 25.0);
glDisable (GL_LINE_STIPPLE);
}
void drawLineStrip()
{
glColor3f (0.0, 0.0, 1.0);
glPointSize(5);
// glBegin(GL_LINE_STRIP);
glBegin(GL_LINE_LOOP);
glVertex2f(0.0,0.0);
glVertex2f(-0.3,-0.5);
glVertex2f(0.3,-0.5);
glEnd ();
}
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
// glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
//设置颜色
glColor3f(1.0,1.0,0.0);
//画出矩形
glBegin(GL_POLYGON);
glVertex3f(0.25,0.25,0.25);
glVertex3f(0.75,0.25,0.0);
glVertex3f(0.75,0.75,0.0);
glVertex3f(0.25,0.75,0.0);
//glVertex3f(0.0,0.5,0.0);
glEnd();
drawPoint();
drawLines();
drawLineStripple();
drawLineStrip();
glFlush();
}
void reshape (int w, int h)
{
// glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
//gluOrtho2D (0.0, (GLdouble) w, 0.0, (GLdouble) h);
// glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
//glOrtho(left, right, bottom, top, near, far)
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("第一个OpenGL程序");
//glClearColor (0.0, 1.0, 1.0, 0.0);
glutDisplayFunc(myDisplay);
glutReshapeFunc(reshape);
glutMainLoop();
return 0;
}

Learn From

OpenGL画简单图形相关推荐

  1. html5怎么画坐标图,新手如何5分钟学会用canvas在HTML5上画简单图形

    HTML5中的另外一个新元素是标签.须要使用JavaScript来操做和绘制画布. canvas元素为脚本提供了一个依赖于分辨率的位图画布,它能够用于呈现图形.游戏图形或其余可视图像. 当一个更合适的 ...

  2. 新手如何5分钟学会用canvas在HTML5上画简单图形

    HTML5中的另一个新元素是标签.需要使用JavaScript来操作和绘制画布. canvas元素为脚本提供了一个依赖于分辨率的位图画布,它可以用于呈现图形.游戏图形或其他可视图像. 当一个更合适的元 ...

  3. python画简单图形-python基础教程之turtle的简单绘图

    https://www.xin3721.com/eschool/pythonxin3721/ 接触python,就发现python是一门很有趣的课程.往往只需要利用几行简单的代码,就能绘制出简单漂亮的 ...

  4. c语言如何画简单图形,如何用C语言画基本图形

    #include#include "conio.h" #include"math.h" void main() { int gdriver=DETECT,gmo ...

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

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

  6. Android openGl开发详解(一)——绘制简单图形

    1. What? openGl是什么?openGl ES又是什么? 2. How? Android中的openGL 如何使用? 3. GlSurfaceView是什么? GLSurfaceView的作 ...

  7. SurfaceView简单理解,Android混淆,Android openGl开发详解简单图形的绘制,

    SurfaceView允许你在非ui线程中去绘制. SurfaceView的帧率可以操作60FPS 在要求实时性比较高的游戏开发中,显然,view的ondraw是满足不了你的,这时候只能是用Surfa ...

  8. python的turtle怎么画曲线_利用 turtle库绘制简单图形

    turtle库是python的基础绘图库,这个库被介绍为一个最常用的用来介绍编程知识的方法库,其主要是用于程序设计入门,是标准库之一,利用turtle可以制作很多复杂的绘图. turtle名称含义为& ...

  9. 用java的事件监听机制实现一个简单的画板应用:通过选择图形按钮和颜色按钮来画出自己想画的图形:直线、空心矩形、圆形、折线、多边形、圆角矩形、弧线、曲线、喷枪

    今天做一个简单的画板,完整代码附在文章末尾处. - 功能:通过选择图形按钮和颜色按钮来画出自己想画的图形. - 界面展示: - 思路: 1.做一个可视化界面:创建JFrame对象,并设置Title.S ...

最新文章

  1. C语言新手写扫雷攻略3
  2. POJ C程序设计进阶 编程题#3:运算符判定
  3. 福州大学计算机组成原理试题,2016年福州大学计算机专业基础C复试之计算机组成原理复试笔试最后押题五套卷...
  4. Python-functools (reduce,偏函数partial,lru_cache)
  5. 深度学习中的核心知识
  6. 重写数组的方法(改变原数组)
  7. Taro+react开发(48)taro中switchTab
  8. Vim批量注释、替换和缩进
  9. 计算机组成原理-第3章-3.3
  10. oracle出现EOF,ora-03113: 通道出现EOF
  11. 一个简单的dos命令实现无限弹窗,卡死电脑
  12. 利息计算器 html,html+jQuery简单的利息计算器
  13. 张朝阳5G寻路与搜狐奇兵
  14. CATIA二次开发—定制搜索功能
  15. 数字锁相ud,uq的关系
  16. 对话诊断(X)2022IJCAI-My nose is running.Are you also coughing?:Building a Medical Diagnosis Agent with
  17. open judge 内排序:Freda的越野跑
  18. AI 计算能力TOPS
  19. 鼎信诺虚拟服务器导数,鼎信诺使用手册--自编版.docx
  20. 机器人中的数值优化|【一】数值优化基础

热门文章

  1. Go Concurrency Patterns: Pipelines and cancellation
  2. 给将要进入职场的同学 - 开发软件不是闭卷考试
  3. python的email模块_python email 模块
  4. windows7 python 指定源组播 10049_Python3组播通信编程实现教程(发送者+接收者)
  5. web mysql 界面表命名规范_MySql数据库表字段命名及设计规范
  6. qgraphicsitem 复制副本_删除/删除/替换QGraphicsTextItem中的选定文本
  7. python动态页面元素爬取_爬取动态网页python+Web kit
  8. php 递归格式化数组,利用php递归实现无限分类 格式化数组的详解
  9. 七参数 布尔萨 最小二乘法_最小二乘法和最大似然法的联系
  10. 运行java是提示 选择未包含 main 类型 如何解决_RuoYi 若依 代码生成器使用教程...