代码如下:

#define GLUT_DISABLE_ATEXIT_HACK
#include <math.h>#include "gl/glut.h"
#pragma comment(lib, "glut32.lib")void Drawing()
{GLfloat x, y, z = -50.0f, inc = 0, angle;glPushMatrix();                             //将当前矩阵压入矩阵堆栈{glRotatef(-45.0f, 1.0f, 0.0f, 0.0f);    //将当前坐标系绕X轴旋转-45度glRotatef(15.0f, 0.0f, 1.0f, 0.0f);     //将当前坐标系再绕Y轴旋转15度glColor3f(0.0f, 1.0f, 0.0f);            //将绘图色设置为红色glBegin(GL_POINTS);//注意GL_POINT 跟GL_POINTS的区别{for (angle = 0.0f; angle <= 2.0f * 3.14159f * 3.0f; angle += 0.1f){x = inc * sin(angle);           //计算点的X坐标y = inc * cos(angle);           //计算点的Y坐标glVertex3f(x, y, z);            //绘制点z += 0.5f;                      //Z坐标增量inc += 0.3f;                    //半径增量}}glEnd();}glPopMatrix();                              //恢复原矩阵glutSwapBuffers();                           //这里就不用glFlush();
}void Initialization()
{glClearColor(0.0f, 0.0f, 0.0f,1.0f);
}void OnDisplay()
{glClear(GL_COLOR_BUFFER_BIT);Drawing();
}void OnReshape(int w, int h)
{GLfloat aspect =(GLfloat)w / (GLfloat)h;GLfloat nRange = 100.0f;glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);     //将当前矩阵指定为投影模式glLoadIdentity();//设置三维投影区if (w <= h){glOrtho(-nRange, nRange, -nRange / aspect, nRange / aspect, -nRange, nRange);} else{glOrtho(-nRange, nRange, -nRange * aspect, nRange * aspect, -nRange, nRange);}glMatrixMode(GL_MODELVIEW);     //将当前矩阵恢复为模型视图模式glLoadIdentity();
}void main(int argc, char **argv)
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);glutInitWindowSize(640, 480);glutInitWindowPosition(10, 10);glutCreateWindow("绘制三维点");glutDisplayFunc(OnDisplay);glutReshapeFunc(OnReshape);Initialization();glutMainLoop();
}

运行效果如下:

OpenGL: 在空间绘制出一系列螺旋上升的点相关推荐

  1. 在空间绘制出一系列螺旋上升的点

    效果图: #define GLUT_DISABLE_ATEXIT_HACK#include "gl/glut.h"#include <math.h> void Draw ...

  2. 【OpenGL学习笔记①】——openGL flew flgw flut 环境配置 + 绘制出Hello World

      该文章旨在帮助 计算机图形学 openGL 初学者快速安装和配置 openGL的环境(包括glew和glfw,还有glut[进阶]),并手把手指导如何绘制出第一句 "Hello Worl ...

  3. opengl学习2 绘制三角形和矩形

    在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的图形 ...

  4. 《视觉开发专题》之 OpenGL 3D动画绘制图形学概念的理解

    知识前导 计算机图形学的终极目标--讨好人类视觉系统   最近在啃的书中有一本叫<计算机图形学 原理及实践>,这本书让我深有感触的是其绪论中对计算机构建真实感图像的理解:我们所致力的最终目 ...

  5. OpenGL学习脚印: 绘制一个三角形

    写在前面 接着上一节内容,开发环境搭建好后,我们当然想立即编写3D应用程序了.不过我们还需要些耐心,因为OpenGL是一套底层的API,因而我们要掌握的基本知识稍微多一点,在开始绘制3D图形之前,本节 ...

  6. OpenGL圆弧的绘制方法

    OpenGL库中提供了多种图元绘制的函数,但是不知为何圆弧一直不在其中,最近的项目刚好涉及到OpenGL圆与圆弧的绘制,在本篇博客上简单总结. 首先先介绍圆的绘制:这里采用用线段逼近的方法,与其他博主 ...

  7. 【OpenGL学习】绘制三角形

    绘制三角形 上节中完成了窗口的绘制,这节我们主要实现在窗口中完成一个最简单的三角形的绘制,同样,要完成一个三角形的绘制,需要以下内容: Vertex Array 存放顶点数据的数组(实际上存放的是顶点 ...

  8. Nature:科学家成功绘制出大脑神经细胞“地图”

    图片来源:Thomas Hainmüller, Marlene Bartos 来源:生物谷 摘要:最近,一项刊登在国际杂志Nature上的研究报告中,来自弗莱堡大学的科学家们通过研究开发出了一种新型模 ...

  9. 利用鼠标点击绘制出三棱锥

    作者:feiquan出处:http://www.cnblogs.com/feiquan/ 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

最新文章

  1. NM-CIDS测试经历
  2. Oracle日期函数和循环总结
  3. SAP Analytics Cloud关于Smart Predict功能的说明
  4. 大学生计算机二级大集报名最好,在校大学生如何报名计算机二级?
  5. python获取终端输出流_Linux下用Python获取命令行输出的几个方案
  6. jmeter+mysql+set_jmeter学习指南之操作 mysql 数据库
  7. iOS开发隐藏tabBar的问题
  8. java去掉的行_Java实现去掉每行的行号
  9. java 快排_秋招|字节跳动Java后台已上岸,发个面经回馈牛油
  10. Entry输入框实现登录用户名冷却验证小案例(Tkinter)
  11. ssm-学子商城-项目第十三天最后一天完成项目
  12. 为什么Audition cc2017扫描不了电音插件,你需要这个软件
  13. [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
  14. java支付宝网页授权_轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息...
  15. SQL Server 进程无法连接到 Subscriber “xxxxxx”
  16. 虚拟机+服务器管理器怎么打开,大话西游2特色版虚拟机镜像一键服务端+启动教程+物品ID+GM设置方法+数据库工具等...
  17. Java程序设计 北京大学 2019冬期中测验
  18. ZK锦集:Zookeeper的下载和安装 | 真/伪集群的快速搭建| 总结的很详细
  19. connect的中文意思是什么_connect是什么意思?
  20. 关于window10授时失败问题

热门文章

  1. 每日一题-3.12-仿真工具
  2. 两种点云分割(一)— RANSAC分割平面
  3. linux守护进程以及如何编写守护进程程序
  4. svg性能低?能展现的点比较少?真的是这样吗?
  5. SpringMVC的数据校验
  6. pandas基础用法——数据校验
  7. win10下载安装eclipse手把手教程,适合新手小白
  8. el-table选框选中和整行选中
  9. 在线文档查看方案- 易度云查看
  10. 【算法】To Europe! To Europe!-动态规划