代码:

#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. JSON序列——主从表查询

    JSON序列——主从表查询 客户端代码: procedure TForm1.Button4Click(Sender: TObject); // 主从表 查询 begin var url: TynUrl ...

  2. C#语言

    封面 书名 版权 前言 目录 第Ⅰ部分 C#语言 第1章  NET体系结构 1.1  C#与.NET的关系 1.2  公共语言运行库 1.2.1  平台无关性 1.2.2  提高性能 1.2.3  语 ...

  3. wifipineapple外接SD卡

    通过SSH或者web访问URL, http://172.16.42.1:1471 输入帐号:root  密码:pineapplesareyummy(默认账号密码) ssh连接:ssh root@172 ...

  4. 【ZH奶酪】如何用textgenrnn处理中文

    如何用textgenrnn处理中文 1. 什么是textgenrnn? textgenrnn是建立在Keras和TensorFlow之上的,可用于生成字级别和词级别文本.网络体系结构使用注意力加权来加 ...

  5. ubuntu16 64位 编译64位程序和32位程序

    安装了ubuntu16 64位的系统,想在该环境下用gcc编译64位和32位的程序 默认已经安装了64位环境的gcc 1. 首先确认安装的环境是不是64位的 cocoa@cocoaUKlyn:~/De ...

  6. maven 设置跳过测试

    1.在执行mvn命令时增加以下参数可以跳过测试: -DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下. -Dmaven.test ...

  7. zabbix监控k8s出现的pod error status

    配置zabbix客户端配置文件 vim /etc/zabbix/zabbix_agentd.conf 添加  Include=/etc/zabbix/zabbix_agentd.d/ #!/bin/b ...

  8. Dockerfile 构建kibana 反向代理应用做用户认证访问

    FROM centos MAINTAINER z*****ch.cn RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime & ...

  9. C语言判断文件夹或者文件是否存在的方法【转】

     C语言判断文件夹或者文件是否存在的方法   方法一:access函数判断文件夹或者文件是否存在 函数原型: int access(const char *filename, int mode); 所 ...

  10. Gradle 中 buildConfigField的巧妙应用

    当用AndroidStudio来进行Android项目开发时,build.gradle就是这个工具的核心部分,所有的依赖,debug/release设置,混淆等都在这里进行配置. 下面就主要来记录下利 ...