OpenGL: 在空间绘制出一系列螺旋上升的点
代码如下:
#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: 在空间绘制出一系列螺旋上升的点相关推荐
- 在空间绘制出一系列螺旋上升的点
效果图: #define GLUT_DISABLE_ATEXIT_HACK#include "gl/glut.h"#include <math.h> void Draw ...
- 【OpenGL学习笔记①】——openGL flew flgw flut 环境配置 + 绘制出Hello World
该文章旨在帮助 计算机图形学 openGL 初学者快速安装和配置 openGL的环境(包括glew和glfw,还有glut[进阶]),并手把手指导如何绘制出第一句 "Hello Worl ...
- opengl学习2 绘制三角形和矩形
在OpenGL中,任何事物都在3D空间中,而屏幕和窗口却是2D像素数组,这导致OpenGL的大部分工作都是关于把3D坐标转变为适应你屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的图形 ...
- 《视觉开发专题》之 OpenGL 3D动画绘制图形学概念的理解
知识前导 计算机图形学的终极目标--讨好人类视觉系统 最近在啃的书中有一本叫<计算机图形学 原理及实践>,这本书让我深有感触的是其绪论中对计算机构建真实感图像的理解:我们所致力的最终目 ...
- OpenGL学习脚印: 绘制一个三角形
写在前面 接着上一节内容,开发环境搭建好后,我们当然想立即编写3D应用程序了.不过我们还需要些耐心,因为OpenGL是一套底层的API,因而我们要掌握的基本知识稍微多一点,在开始绘制3D图形之前,本节 ...
- OpenGL圆弧的绘制方法
OpenGL库中提供了多种图元绘制的函数,但是不知为何圆弧一直不在其中,最近的项目刚好涉及到OpenGL圆与圆弧的绘制,在本篇博客上简单总结. 首先先介绍圆的绘制:这里采用用线段逼近的方法,与其他博主 ...
- 【OpenGL学习】绘制三角形
绘制三角形 上节中完成了窗口的绘制,这节我们主要实现在窗口中完成一个最简单的三角形的绘制,同样,要完成一个三角形的绘制,需要以下内容: Vertex Array 存放顶点数据的数组(实际上存放的是顶点 ...
- Nature:科学家成功绘制出大脑神经细胞“地图”
图片来源:Thomas Hainmüller, Marlene Bartos 来源:生物谷 摘要:最近,一项刊登在国际杂志Nature上的研究报告中,来自弗莱堡大学的科学家们通过研究开发出了一种新型模 ...
- 利用鼠标点击绘制出三棱锥
作者:feiquan出处:http://www.cnblogs.com/feiquan/ 版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...
最新文章
- NM-CIDS测试经历
- Oracle日期函数和循环总结
- SAP Analytics Cloud关于Smart Predict功能的说明
- 大学生计算机二级大集报名最好,在校大学生如何报名计算机二级?
- python获取终端输出流_Linux下用Python获取命令行输出的几个方案
- jmeter+mysql+set_jmeter学习指南之操作 mysql 数据库
- iOS开发隐藏tabBar的问题
- java去掉的行_Java实现去掉每行的行号
- java 快排_秋招|字节跳动Java后台已上岸,发个面经回馈牛油
- Entry输入框实现登录用户名冷却验证小案例(Tkinter)
- ssm-学子商城-项目第十三天最后一天完成项目
- 为什么Audition cc2017扫描不了电音插件,你需要这个软件
- [重庆思庄每日技术分享]-数据库创建组件时报错ORA-30554: XDB.XDB$ACL_XIDX is disabled
- java支付宝网页授权_轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息...
- SQL Server 进程无法连接到 Subscriber “xxxxxx”
- 虚拟机+服务器管理器怎么打开,大话西游2特色版虚拟机镜像一键服务端+启动教程+物品ID+GM设置方法+数据库工具等...
- Java程序设计 北京大学 2019冬期中测验
- ZK锦集:Zookeeper的下载和安装 | 真/伪集群的快速搭建| 总结的很详细
- connect的中文意思是什么_connect是什么意思?
- 关于window10授时失败问题