3-1:画点,连成线

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h" void init(void)
{
glClearColor(1.0, 1.0, 0.0, 0.0); glMatrixMode(GL_PROJECTION);
gluOrtho2D(-10.0, 10.0, -10.0, 10.0);
} void lineSegment(void)
{
glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.4, 0.2);
glBegin(GL_LINES);
glVertex2i(10,10);
glVertex2i(-10,-10);
glVertex2i(-10, 0);
glVertex2i(10, 0);
glVertex2i(0, -10);
glVertex2i(0, 10);
glEnd(); glFlush();
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(100,100);
glutInitWindowSize(800, 400);
glutCreateWindow("第一个OpenGL程序"); init();//设置背景,坐标系
glutDisplayFunc(lineSegment);//
glutMainLoop();
return 0;
}

4-1

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0, 200.0, -200.0, 200.0);
} //rho = a(1-sint(theta))
//x = a(1 - sin(t))*cos(t)
//y = a(1 - sin(t))*sin(t)
void circleDisplay(void)
{
float t;
glClear(GL_COLOR_BUFFER_BIT); srand((unsigned)time(NULL)); glColor3f(1.0, 0.0, 0.0);
glLineWidth(10.0);
glBegin(GL_LINE_LOOP);
for (int i = 0; i < 1000; i++)
{
t = -1 * Pi / 2+ 2 * i * Pi / 1000;
glVertex2f(100*(1 - sin(t))*cos(t), 100*(1 - sin(t))*sin(t));
}
glEnd(); glFlush();
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50,100);
glutInitWindowSize(800, 800);
glutCreateWindow("第一个OpenGL程序"); glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0, 200.0, -200.0, 200.0); glutDisplayFunc(circleDisplay);
glutMainLoop(); return 0;
}

4-2

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 float a = 60.0; void circleDisplay(void)
{
double rr, gg, bb;
float x, y;
glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0);
glLineWidth(5.0);
//cout << "a=" << a << endl;
glBegin(GL_LINE_STRIP);
for (int i = 0; i <= 10000; i++)
{
x = -5 + 10.0 * i / 10000;
glVertex2f(x, pow(x * x, 1.0 / 3.0) + 0.9 * sqrt(3.3 - x * x) * sin(a * Pi * x));
//glVertex2f(x, x * x);
}
glEnd(); glFlush();
} void SpecialKeys(int key, int x, int y)
{
if (key == GLUT_KEY_UP)
a = a + 0.25; glutPostRedisplay();
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50,100);
glutInitWindowSize(800, 800);
glutCreateWindow("第一个OpenGL程序"); glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-3.0, 3.0, -3.0, 3.0); glutDisplayFunc(circleDisplay);
//glutSpecialFunc(SpecialKeys);
glutMainLoop(); return 0;
}

4-3:point

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0, 200.0, -200.0, 200.0);
} void circleDisplay(void)
{
double rr, gg, bb;
float x, y;
glClear(GL_COLOR_BUFFER_BIT); srand((unsigned)time(NULL)); glPointSize(10.0);
glBegin(GL_POINTS);
for (int i = 0; i < 1000; i++)
{
rr = rand() / double(RAND_MAX);
gg = rand() / double(RAND_MAX);
bb = rand() / double(RAND_MAX); x = (rand() % (400 + 1)) - 200;
y = (rand() % (400 + 1)) - 200; glColor3d(rr, gg, bb);
glVertex2f(x, y);
}
glEnd(); glFlush();
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50,100);
glutInitWindowSize(800, 800);
glutCreateWindow("第一个OpenGL程序"); glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0, 200.0, -200.0, 200.0); glutDisplayFunc(circleDisplay);
glutMainLoop(); return 0;
}

5-1:bitmap显示字体

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0, 200.0, -200.0, 200.0);
} void circleDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 1.0); glRasterPos2i(0,0);
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, 'A');
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, 'B');
glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, 'C');
glutBitmapCharacter(GLUT_BITMAP_TIMES_ROMAN_24, 'D'); glFlush();
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(50,100);
glutInitWindowSize(800, 800);
glutCreateWindow("第一个OpenGL程序"); init();
glutDisplayFunc(circleDisplay);
glutMainLoop(); return 0;
}

6-1:blending

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 int windowWidth = 600, windowHeight = 600; void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0); glEnable(GL_BLEND);
//glBlendFunc(GL_ONE, GL_ZERO);// sFactor, dFactor
//glBlendFunc(GL_ZERO, GL_ONE);// sFactor, dFactor
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glBlendFunc(GL_ONE, GL_ONE);
} void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); glColor4f(1.0, 0.0, 0.0, 0.9);
glRecti(-50, -50, 100, 100); glColor4f(0.0, 1.0, 0.0, 0.9);
glRecti(-100, -100, 50, 50); glFlush();
} void windowReshape(int w, int h)
{
float aspectRatio; windowWidth = w;
windowHeight = h; if (windowHeight == 0) windowHeight = 1;
aspectRatio = (float)windowWidth / (float)windowHeight; glViewport(0, 0, windowWidth, windowHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (windowWidth >= windowHeight)
gluOrtho2D(-100.0*aspectRatio, 100.0*aspectRatio, -100.0, 100.0);
else gluOrtho2D(-100.0, 100.0, -100.0 / aspectRatio, 100.0 / aspectRatio);
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(windowWidth, windowHeight);
glutCreateWindow("第一个OpenGL程序"); init();
glutReshapeFunc(windowReshape);
glutDisplayFunc(myDisplay);
glutMainLoop(); return 0;
}

6-2:reshape

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 int windowWidth = 600, windowHeight = 600; void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);
} void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0);
glRectf(-50.0,-50.0, 50.0, 50.0); glFlush();
} void windowReshape(int w, int h)
{
float aspectRatio; windowWidth = w;
windowHeight = h; aspectRatio = (float)windowWidth / (float)windowHeight; //if (windowHeight == 0) windowHeight = 1;
//aspectRatio = (float)windowWidth / (float)windowHeight; glViewport(0, 0, windowWidth, windowHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (windowWidth >= windowHeight)
gluOrtho2D(-100.0*aspectRatio, 100.0*aspectRatio, -100.0, 100.0);
else gluOrtho2D(-100.0, 100.0, -100.0 / aspectRatio, 100.0/aspectRatio);
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(windowWidth, windowHeight);
glutCreateWindow("第一个OpenGL程序"); init();
glutReshapeFunc(windowReshape);
glutDisplayFunc(myDisplay);
glutMainLoop(); return 0;
}

6-3:smooth

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 int windowWidth = 600, windowHeight = 600; void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0); //glEnable(GL_BLEND);
//glBlendFunc(GL_ONE, GL_ZERO);// sFactor, dFactor
//glBlendFunc(GL_ZERO, GL_ONE);// sFactor, dFactor
//glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glBlendFunc(GL_ONE, GL_ONE);
} void myDisplay(void)
{
double rr, gg, bb;
float t, x, y; srand((unsigned)time(NULL)); glClear(GL_COLOR_BUFFER_BIT); glShadeModel(GL_SMOOTH);
glBegin(GL_POLYGON);
glVertex2f(0.0, 0.0);
for (int i = 0; i <= 20; i++)
{
rr = rand() / double(RAND_MAX);
gg = rand() / double(RAND_MAX);
bb = rand() / double(RAND_MAX); t = Pi *i / 20; x = 60.0*cos(t);
y = 60.0*sin(t); glColor3d(rr, gg, bb);
glVertex2f(x, y);
}
glEnd(); glFlush();
} void windowReshape(int w, int h)
{
float aspectRatio; windowWidth = w;
windowHeight = h; if (windowHeight == 0) windowHeight = 1;
aspectRatio = (float)windowWidth / (float)windowHeight; glViewport(0, 0, windowWidth, windowHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (windowWidth >= windowHeight)
gluOrtho2D(-100.0*aspectRatio, 100.0*aspectRatio, -100.0, 100.0);
else gluOrtho2D(-100.0, 100.0, -100.0 / aspectRatio, 100.0 / aspectRatio);
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(windowWidth, windowHeight);
glutCreateWindow("第一个OpenGL程序"); init();
glutReshapeFunc(windowReshape);
glutDisplayFunc(myDisplay);
glutMainLoop(); return 0;
}

7-1:antialiasing 消除锯齿

#include "stdafx.h"
#define Pi 3.1415926 int windowWidth = 600, windowHeight = 600; void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0); glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
} void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); glColor3f(0.0, 0.0, 1.0);
glLineWidth(200.0);
glBegin(GL_LINES);
glVertex2i(-5, -1);
glVertex2i(5, 1);
glEnd(); glFlush();
} void windowReshape(int w, int h)
{
float aspectRatio; windowWidth = w;
windowHeight = h; aspectRatio = (float)windowWidth / (float)windowHeight; glViewport(0, 0, windowWidth, windowHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (windowWidth >= windowHeight)
gluOrtho2D(-10.0*aspectRatio, 10.0*aspectRatio, -10.0, 10.0);
else gluOrtho2D(-10.0, 10.0, -10.0 / aspectRatio, 10.0 / aspectRatio);
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(windowWidth, windowHeight);
glutCreateWindow("第一个OpenGL程序"); init();
glutReshapeFunc(windowReshape);
glutDisplayFunc(myDisplay);
glutMainLoop(); return 0;
}

7-2:fill area

#include "stdafx.h"
#define Pi 3.1415926 int windowWidth = 600, windowHeight = 600; void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);
} void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); //glColor3f(1.0, 0.0, 0.0);
//glBegin(GL_TRIANGLES);
//glVertex2i(-50, -50);
//glVertex2i(50, -50);
//glVertex2i(0, 50);
//glEnd(); //glColor3f(1.0, 0.0, 0.0);
//glBegin(GL_POLYGON);
//glVertex2i(-50, 0); glVertex2i(-25, -50);
//glVertex2i(25, -50); glVertex2i(50, 0);
//glVertex2i(25, 50); glVertex2i(-25, 50);
//glEnd(); //glShadeModel(GL_SMOOTH);//GL_FLAT
//glBegin(GL_TRIANGLES);
//glColor3f(1.0, 0.0, 0.0); glVertex2i(-50, -50);
//glColor3f(0.0, 1.0, 0.0); glVertex2i(50, -50);
//glColor3f(0.0, 0.0, 1.0); glVertex2i(0, 50);
//glEnd(); //glShadeModel(GL_SMOOTH);//GL_FLAT
//glBegin(GL_POLYGON);
//glColor3ub(255, 0, 0); glVertex2i(-50, 0);
//glColor3ub(255, 97, 0); glVertex2i(-25, -50);
//glColor3ub(255, 255, 0); glVertex2i(25, -50);
//glColor3ub(0, 255, 0); glVertex2i(50, 0);
//glColor3ub(0, 255, 255); glVertex2i(25, 50);
//glColor3ub(0, 0, 255); glVertex2i(-25, 50);
//glEnd(); //glShadeModel(GL_SMOOTH);//GL_FLAT
//glBegin(GL_POLYGON);
//glColor3ub(255, 0, 0); glVertex2i(-50, 0);
//glColor3ub(255, 255, 0); glVertex2i(-25, -50);
//glColor3ub(255, 255, 0); glVertex2i(25, -50);
//glColor3ub(255, 0, 0); glVertex2i(50, 0);
//glEnd(); glFlush();
} void windowReshape(int w, int h)
{
float aspectRatio; windowWidth = w;
windowHeight = h; aspectRatio = (float)windowWidth / (float)windowHeight; glViewport(0, 0, windowWidth, windowHeight);
glMatrixMode(GL_PROJECTION);
glLoadIdentity(); if (windowWidth >= windowHeight)
gluOrtho2D(-100.0*aspectRatio, 100.0*aspectRatio, -100.0, 100.0);
else gluOrtho2D(-100.0, 100.0, -100.0 / aspectRatio, 100.0 / aspectRatio);
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(windowWidth, windowHeight);
glutCreateWindow("第一个OpenGL程序"); init();
glutReshapeFunc(windowReshape);
glutDisplayFunc(myDisplay);
glutMainLoop(); return 0;
}

7-3:line-type

// OPENGL.cpp : Defines the entry point for the console application.
// #include "stdafx.h"
#define Pi 3.1415926 void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0); glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-10.0, 10.0, -10.0, 10.0);
} void circleDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_LINE_STIPPLE); glLineWidth(10.0f);
glColor3f(0.0, 0.0, 0.0);
glLineStipple(1, 0x0101);
glBegin(GL_LINES);
glVertex2f(-5.0,-5.0);
glVertex2f(5.0, 5.0);
glEnd(); glFlush();
} int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(50,100);
glutInitWindowSize(800, 800);
glutCreateWindow("第一个OpenGL程序"); init();
glutDisplayFunc(circleDisplay);
glutMainLoop(); return 0;
}

OpenGL基础代码整理的更多相关文章

  1. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  2. OpenGL基础图形编程

    一.OpenGL与3D图形世界1.1.OpenGL使人们进入三维图形世界 我们生活在一个充满三维物体的三维世界中,为了使计算机能精确地再现这些物体,我们必须能在三维空间描绘这些物体.我们又生活在一个充 ...

  3. opengl基础学习专题 (二) 点直线和多边形

    题外话 随着学习的增长,越来越觉得自己很水.关于上一篇博文中推荐用一个 学习opengl的 基于VS2015的 simplec框架.存在 一些问题. 1.这个框架基于VS 的Debug 模式下,没有考 ...

  4. 【转】OpenGL基础图形编程(一)

    原文:http://blog.chinaunix.net/uid-20638550-id-1909183.html  分类: 一.OpenGL与3D图形世界 1.1.OpenGL使人们进入三维图形世界 ...

  5. material design 的android开源代码整理

    material design 的android开源代码整理 1 android (material design 效果的代码库) 地址请点击:MaterialDesignLibrary 效果: 2 ...

  6. MFC+OpenGL基础绘制<转>

    转载地址:https://blog.csdn.net/u013232740/article/details/47904115 ------------------------------------- ...

  7. opengl基础学习专题 (一 )编程环境搭建

    题外话: 第一次在博客园上同大家分享博文.水的的地方,错别字的地方.环境交流.批评.知道了马上改. 以前在百度空间中写技术分享博文,后来百度啥也没说就把整个空间封了.当时感觉 还是有点寒心.只想黑一下 ...

  8. [译]Vulkan教程(04)基础代码

    [译]Vulkan教程(04)基础代码 General structure 通用结构 In the previous chapter you've created a Vulkan project w ...

  9. Photon Server 实现注册与登录(二) --- 服务端代码整理

    一.有的代码前端和后端都会用到.比如一些请求的Code.使用需要新建项目存放公共代码. 新建项目Common存放公共代码: EventCode :存放服务端自动发送信息给客户端的code Operat ...

随机推荐

  1. 程序运行时间测试 - 使用libc 中 time 函数 实现秒级的运行时间检测

    c 标准库中,有time 函数,可以返回 1970年1月1日 开始到现在的秒数,我们可以调用两次的时间差来计算程序运行时间: https://github.com/yaowenxu/Workplace ...

  2. MATLAB实例:为匹配真实标签,对训练得到的标签进行调整

    MATLAB实例:为匹配真实标签,对训练得到的标签进行调整 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. MATLAB程序 munkres.m ...

  3. 【机器学习之数学】03 有约束的非线性优化问题——拉格朗日乘子法、KKT条件、投影法

    目录 1 将有约束问题转化为无约束问题 1.1 拉格朗日法 1.1.1 KKT条件 1.1.2 拉格朗日法更新方程 1.1.3 凸优化问题下的拉格朗日法 1.2 罚函数法 2 对梯度算法进行修改,使其 ...

  4. Educational Codeforces Round 76 (Rated for Div. 2) B. Magic Stick 水题

    B. Magic Stick Recently Petya walked in the forest and found a magic stick. Since Petya really likes ...

  5. Educational Codeforces Round 76 (Rated for Div. 2) A. Two Rival Students 水题

    A. Two Rival Students There are

  6. css 适配

    https://blog.csdn.net/weixin_35467885/article/details/80778992 1.通过link方法 link方法引入媒体类型其实就是在标签引用样式的时候 ...

  7. 【STM32H7教程】第20章 STM32H7的GPIO应用之无源蜂鸣器

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第20章       STM32H7的GPIO应用之无源蜂鸣器 ...

  8. 数据库之MySQL查询

    查询 创建数据库.数据表 -- 创建数据库 create database python_test1 charset=utf8; -- 使用数据库 use python_test1; -- stude ...

  9. 用.net core实现反向代理中间件

    最近在将一些项目的rest api迁移到.net core中,最开始是用的Nginx做反向代理,将已经完成切换的部分切入系统,如下图所示: 由于迁移过程中也在进行代码重构,需要经常比较频繁的测试,以保 ...

  10. Python 情人节超强技能 导出微信聊天记录生成词云

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Python实用宝典 PS:如有需要Python学习资料的小伙伴可 ...