代码:

#include<iostream>
#include <math.h>
#include<Windows.h>
#include <GL/glut.h> using namespace std; GLsizei winWidth = , winHeight = ; void init()
{
glClearColor(1.0, 1.0, 1.0, 0.0);
} void wireQuadSurfs()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 1.0); gluLookAt(2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0); glPushMatrix();
glTranslatef(1.0, 1.0, 1.0);
//球面,半径为0.5
glutWireSphere(0.50, , );
glPopMatrix(); glPushMatrix();
glTranslatef(1.0, -0.5, 0.5);
//圆锥面,底面半径为0.5,高位1.5
glutWireCone(0.5, 1.5, , );
glPopMatrix(); GLUquadricObj *cylinder;
glPushMatrix();
glTranslatef(0.0, 1.5, 0.8);
//激活二次曲面绘制器
cylinder = gluNewQuadric();
//每对顶点之间用线连接,按线框图形式显示
gluQuadricDrawStyle(cylinder, GLU_LINE);
//生成圆柱面
gluCylinder(cylinder, 0.5, 0.5, 1.5, , );
glPopMatrix(); glFlush();
} void winReshapeFcn(GLint newWidth, GLint newHeight)
{
glViewport(, , (GLsizei)newWidth, (GLsizei)newHeight); glMatrixMode(GL_PROJECTION);
glOrtho(-2.0, 2.0, -2.0, 2.0, 0.0, 5.0); glMatrixMode(GL_MODELVIEW); glClear(GL_COLOR_BUFFER_BIT);
} int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(, ); glutInitWindowSize(winWidth, winHeight);
glutCreateWindow("球面-圆锥面-圆柱面");
init();
glutDisplayFunc(wireQuadSurfs);
glutReshapeFunc(winReshapeFcn);
glutMainLoop(); system("pause");
return ;
}

运行结果:

OpenGL——二次曲面函数(球面-圆锥面-圆柱面)的更多相关文章

  1. 【计算机图形学】openGL常用函数

    OpenGL常用函数   glAccum 操作累加缓冲区   glAddSwapHintRectWIN 定义一组被 SwapBuffers拷贝的三角形   glAlphaFunc允许设置alpha检测 ...

  2. opengl常用函数

    glAccum 操作累加缓冲区   glAddSwapHintRectWIN 定义一组被 SwapBuffers拷贝的三角形   glAlphaFunc允许设置alpha检测功能   glAreTex ...

  3. 【OpenGL游戏开发之三】OpenGl核心函数库汇总

    OpenGl核心函数库 glAccum 操作累加缓冲区 glAddSwapHintRectWIN 定义一组被SwapBuffers拷贝的三角形 glAlphaFunc允许设置alpha检测功能 glA ...

  4. OpenGL位图函数

    [OpenGL位图函数] 1.OpenGL中glBitmap用于绘制一个二值阵列. When drawn, the bitmap is positioned relative to the curre ...

  5. openGL初学函数解释汇总

    openGL初学函数解释汇总 1.GLUT工具包提供的函数 //GLUT工具包所提供的函数 glutInit(&argc, argv);//对GLUT进行初始化,这个函数必须在其它的GLUT使 ...

  6. # OpenGL常用函数详解(持续更新)

    OpenGL常用函数详解(持续更新) 初始化 void glutInit(int* argc,char** argv)初始化GULT库,对应main函数的两个参数 void gultInitWindo ...

  7. OpenGL一些函数详解(二)

    OpenGL ES顶点数据绘制技巧 在OpenGL中,绘制一个长方体,需要将每个顶点的坐标放在一个数组中.保存坐标时有一些技巧(由于字母下标不好表示,因此将下标表示为单引号,如A1将在后文中表示为A' ...

  8. OpenGL glMatrixMode() 函数解释与例子

    概述 glMatrixMode() 用以指定当前要操作的矩阵,可选值有 GL_MODELVIEW(模型视图,默认值),GL_PROJECTION(投影),GL_TEXTURE(纹理),GL_COLOR ...

  9. OpenGL的API函数使用手册

    (一)OpenGL函数库 格式: <库前缀><根命令><可选的参数个数><可选的参数类型> 库前缀有 gl.glu.aux.glut.wgl.glx.a ...

随机推荐

  1. 用Jersey构建RESTful服务1--HelloWorld

    一.环境1.Eclipse Juno R22. Tomcat 73. Jersey 2.7  下载地址( https://jersey.java.net/download.html) 二.流程1.Ec ...

  2. 针对UDP丢包问题,进行系统层面和程序层面调优

    转自:https://blog.csdn.net/xingzheouc/article/details/49946191 1. UDP概念 用户数据报协议(英语:User Datagram Proto ...

  3. cocos3.x - lua vs2013环境搭建及项目创建示例

    第一步:装vs2013vs 2013下载(没试过) 安装颜色设深色(不伤眼睛),只装c++够用了 第二步:装cocos环境 (如果不打包只为了解引擎之类的话,只装cocos就可以了(就可以了,jdk, ...

  4. test.cpp:(.text+0xc0): undefined reference to `cv::imread(std::string const&, int)'

    opencv报错: test.cpp:(.text+0xc0): undefined reference to `cv::imread(std::string const&, int)' te ...

  5. HTML:DOM 对象

    ylbtech-HTML:DOM 对象 1. Document 对象返回顶部 1-1. Document 对象 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对 ...

  6. Go语言之高级篇beego框架之请求数据处理

    1.Controller中数据参数处理 获取参数:我们经常需要获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: GetStri ...

  7. .NET Unity XML 配置文件(2)

    本文内容 Unity 配置示意图 Unity 的 XML 架构 参考资料 研究配置文件总是很麻烦,而且很可能因为版本问题,会稍有不同.如果你不确定 Unity 是否支持以及如何支持某个元素,就看下相关 ...

  8. Aspose.Cells设置单元格格式

    使用Aspose.Cells操作Excel时,填写的参数是这样的,显然要不得! 这需要像Excel中的“转换为数字”操作,强大的Aspose.Cells可轻松解决这个问题. //默认写法 worksh ...

  9. REP开发技巧

    这个基本包含了所有的特殊情况 wrap 换行 title显示在每页的固定位置, 第一页需要特殊处理 <DATA> <PDF_TITLE Font="5" Size ...

  10. flex学习, 尝试布局一个计算器

    <!DOCTYPE html> <html> <head> <title>flex</title> </head> <st ...