• 【OpenGL】二次曲面图


    说是二次曲面图,其实从视觉效果上看还是三维图。通过glu实用库,我们可以轻松的画出球形、锥形、扇面、圆柱形,而不用像画立方体或立体三角形一样一个面一个面的去画。

    要画二次曲面图形,首先我们要创建一个GLUquadricObj(二次曲面声明类型)。

    具体如下:

    //声明对象
    GLUquadricObj	*uquadric;
    //初始化二次曲面并创建一个指向二次曲面的指针
    uquadric = gluNewQuadric();
    //在二次曲面的表面创建平滑的法向量
    gluQuadricNormals(uquadric,GL_SMOOTH);
    //允许二次曲面使用纹理
    gluQuadricTexture(uquadric,TRUE);
    

    创建完二次曲面声明并初始化之后,我们就可以利用这个指针绘制多个曲面图形了。

    圆柱形

     void gluCylinder( GLUquadric* quad,    --创建的二次曲面指针
        GLdouble base,                                 --底面圆形的半径
        GLdouble top,                                   --顶面圆形的半径
        GLdouble height,                               --圆锥的高度
        GLint slices,                                      --纬线 环绕z轴的细分面(数字越大越平滑,相应的速度越慢)
        GLint stacks )                                    --经线 沿着z轴的细分面(数字越大越平滑,相应的速度越慢)

    圆锥

    圆锥的实现函数和圆柱体是一样的,只要将顶面圆形的半径设为0就可以了。

    圆面

    void gluDisk(
        GLUquadricObj *qobj,      --创建的二次曲面指针
        GLdouble innerRadius,     --内圆的半径
        GLdouble outerRadius,     --外圆的半径
        GLint slices,              --沿半径的细切面(数字越大越平滑,相应的速度越慢)
        GLint loops              --绕圆心的细切面(数字越大越平滑,相应的速度越慢)
    );

    球体

    void gluSphere(
        GLUquadricObj *qobj,    --创建的二次曲面指针
        GLdouble radius,        --球半径
        GLint slices,            --纬线细分面(数字越大越平滑,相应的速度越慢)
        GLint stacks            --经线细分面(数字越大越平滑,相应的速度越慢)
    );

    扇形

    void gluPartialDisk(
        GLUquadricObj *qobj,        --创建的二次曲面指针
        GLdouble innerRadius,       --内圆的半径
        GLdouble outerRadius,       --外圆的半径
        GLint slices,                --沿半径的细切面(数字越大越平滑,相应的速度越慢)
        GLint loops                --绕圆心的细切面(数字越大越平滑,相应的速度越慢)
        GLdouble startAngle,         --扇形开始的角度
        GLdouble sweepAngle        --扇形转过的角度
    );

  • 相关阅读:
    ubuntu一些记录
    unittest添加测试用例方法
    弹出框处理
    无法连接终端
    Python 断言
    Appium_Python_Api文档
    pycharm快捷键
    appium运行时启动失败
    appium运行时每次默认弹出appiumsetting与unlock重装,关闭这两个步骤的方法
    SpringBoot的jar包引用外部properties文件
  • 原文地址:https://www.cnblogs.com/nonkicat/p/2987125.html
Copyright © 2020-2023  润新知