====================================================================
Lu扩展动态库：

		使用OpenGL的函数图形库：OpenLuGl32.dll

====================================================================

#OpenLuGl使用说明及例子{
[OpenLuGl32.dll][使用说明及例子]

1、OpenGL的屏幕坐标与函数自变量的变化范围

    坐标的中心在屏幕中心，X轴由左向右，Y轴由下向上，Z轴由里向外（屏幕以里为负值，屏幕以外为正值）。注意：图象必须被绘制在屏幕里面才能够看到。
    通常，屏幕坐标与函数自变量的变化范围并不一致，例如函数：z(x,y)=x+y，x取[-3.0,3.0]，y取[-3.0,3.0]，则z的取值范围为[-6.0,6.0]。可以将该函数的图象绘制在屏幕的任何位置，例如：X[0.0,10.0]，Y[0.0,10.0]，Z[-10.0,-20.0]。

2、用键盘移动屏幕坐标

    →：坐标原点沿X轴正向向右移动；
    ←：坐标原点沿X轴负向向左移动；
    ↑：坐标原点沿Y轴正向向上移动；
    ↓：坐标原点沿Y轴负向向下移动；
    PageUp：  坐标原点沿Z轴负向向里移动；
    PageDown：坐标原点沿Z轴正向向外移动；
    Home：坐标复位。

3、用键盘使图象旋转

    在OpenLuGl32.dll中设置了三个可由键盘操纵的数，这三个数可由函数gleAngle[i]获得，使用这三个数并与函数glRotated[...]配合可使图象产生旋转。

    Shift + →：	使gleAngle[1]值增加；
    Shift + ←：	使gleAngle[1]值减少；
    Shift + ↑：	使gleAngle[2]值增加；
    Shift + ↓：	使gleAngle[2]值减少；
    Shift + PageUp：	使gleAngle[3]值减少；
    Shift + PageDown：	使gleAngle[3]值增加；
    Shift + Home：	使gleAngle[i]值为0。

    在每一个绘图单元前加上以下代码，可用键盘操纵图象沿X、Y、Z轴旋转：

    glRotated[gleAngle(1),1.0,0.0,0.0]; //使图象沿X轴旋转。
    glRotated[gleAngle(2),0.0,1.0,0.0]; //使图象沿Y轴旋转。
    glRotated[gleAngle(3),0.0,0.0,1.0]; //使图象沿Z轴旋转。

    请参看7、例子之三：可用键盘移动、旋转的二元函数图象。

4、看不到绘制的图象怎么办

    连续按PageUp键，使图象往屏幕里移动，即可看到图象。

5、例子之一：一元函数图象

gleDrawScene[HFor("Scene")],stop();      //设置场景绘制函数后退出

f(x)=x*sin[x];                           //一元函数定义

Scene()=
{
    glClear[],                           //清除屏幕以及深度缓存
    glLoadIdentity[],                    //重置视图
    glTranslated[0.0,0.0,-10.0],         //移动坐标，向屏幕里移动10个单元
    glColor3d[1.0,0.0,0.0],              //设置颜色
    lgPlot[@f,-10.0,10.0,LG_AXES,-3.0,3.0,-2.0,2.0]  //绘制一元函数图象
};

6、例子之二：二元函数图象

gleDrawScene[HFor("Scene")],stop();      //设置场景绘制函数后退出

f(x,y)=(x^2-2*x)*exp(-(x^2)-y^2-x*y);

Scene(:static,Rot)=
{
    glClear[],
    glLoadIdentity[],
    glTranslated[0.0,0.0,-20.0],
    glColor3d[0.0,1.0,0.0],              //设置颜色
    glRotated[1.0*Rot++,1.0,1.0,1.0],    //使图象连续旋转
    lgPlot3d[@f,-3.0,3.0,-3.0,3.0]
};

7、例子之三：可用键盘移动、旋转的二元函数图象

    请尝试将OpenGL的屏幕坐标旋转为常见形式：X轴向前，Y轴向右，Z轴向上。

gleDrawScene[HFor("Scene")],stop();      //设置场景绘制函数后退出

f(x,y)=sin[sqrt(x*x+y*y)];

initScene()=                             //定义初始化函数
{
    gleAngle(90.0,180.0,90.0)            //设置重置视图初始位置
};

Scene()=                                 //场景绘制函数
{
    if[gleIsInitScene(),initScene()],    //需要初始化场景时，就执行初始化函数
    glClear[],
    glColor3d[1.0,0.0,0.0],                    //设置颜色
    gleAxesAngle[],                      //显示坐标和旋转角度
    glLoadIdentity[],
    glTranslated[0.0,0.0,-20.0],
    glColor3d[0.0,1.0,0.0],              //设置颜色
    glRotated[gleAngle(1),1.0,0.0,0.0],  //使图象沿X轴旋转
    glRotated[gleAngle(2),0.0,1.0,0.0],  //使图象沿Y轴旋转
    glRotated[gleAngle(3),0.0,0.0,1.0],  //使图象沿Z轴旋转
    lgPlot3d[@f,-5.0,5.0,-5.0,5.0,LG_NOMESH]
};

8、例子之四：使用脚本函数绘制函数图形

    f(x,y:r)= r=sqrt[(x-50)^2+(y-50)^2]+exp[1.0], sin[r]/r+1;  //函数定义
    fun(x)= lgPlot3d[@f,0.0,100.0,0.0,100.0,LG_NOMESH];        //函数fun只能有一个自变量
    luglPlot[@fun];   //使用脚本函数luglPlot绘制函数图形，可用鼠标控制

9、例子之五：制作彩色旋转的金字塔和正方体

gleDrawScene[HFor("Scene")],stop();      // 设置场景绘制函数后退出

Scene(:static,yRot,xyzRot)=
{
    glClear[],                           // 清屏和清除深度缓冲区
    glLoadIdentity(),                    // 重置当前Modelview矩阵
    glTranslated(-1.5,0.0,-6.0),         // 向左移动1.5个单元、向屏幕里移动6.0个单元
    glRotated(1.0*yRot,0.0,1.0,0.0),     // 在Y轴旋转金字塔

    glBegin(GL_TRIANGLES),               // 开始绘制一个三角形
        glColor3d(1.0,0.0,0.0),          // 红
        glVertex3d( 0.0, 1.0, 0.0),      // 顶（前面）
        glColor3d(0.0,1.0,0.0),          // 绿
        glVertex3d(-1.0,-1.0, 1.0),      // 左（前面）
        glColor3d(0.0,0.0,1.0),          // 蓝
        glVertex3d( 1.0,-1.0, 1.0),      // 右（前面）
        glColor3d(1.0,0.0,0.0),          // 红
        glVertex3d( 0.0, 1.0, 0.0),      // 顶（右面）
        glColor3d(0.0,0.0,1.0),          // 蓝
        glVertex3d( 1.0,-1.0, 1.0),      // 左（右面）
        glColor3d(0.0,1.0,0.0),          // 绿
        glVertex3d( 1.0,-1.0, -1.0),     // 右（右面）
        glColor3d(1.0,0.0,0.0),          // 红

        glVertex3d( 0.0, 1.0, 0.0),      // 顶（后面）
        glColor3d(0.0,1.0,0.0),          // 绿
        glVertex3d( 1.0,-1.0, -1.0),     // 左（后面）
        glColor3d(0.0,0.0,1.0),          // 蓝
        glVertex3d(-1.0,-1.0, -1.0),     // 右（后面）
        glColor3d(1.0,0.0,0.0),          // 红
        glVertex3d( 0.0, 1.0, 0.0),      // 顶（左面）
        glColor3d(0.0,0.0,1.0),          // 蓝
        glVertex3d(-1.0,-1.0,-1.0),      // 左（左面）
        glColor3d(0.0,1.0,0.0),          // 绿
        glVertex3d(-1.0,-1.0, 1.0),      // 右（左面）
    glEnd(),                             // 完成金字塔的绘制

    glLoadIdentity(),                    // 重置当前Modelview矩阵
    glTranslated(1.5,0.0,-7.0),          // 向右移动个1.5单元向屏幕里移动7个单元
    glRotated(1.0*xyzRot,1.0,1.0,1.0),   // 在X、Y、Z轴转动正方体

    glBegin(GL_QUADS),                   // 绘制一个正方体
        glColor3d(0.0,1.0,0.0),          // 设置蓝色
        glVertex3d( 1.0, 1.0,-1.0),      // 右上（顶面）
        glVertex3d(-1.0, 1.0,-1.0),      // 左上（顶面）
        glVertex3d(-1.0, 1.0, 1.0),      // 左下（顶面）
        glVertex3d( 1.0, 1.0, 1.0),      // 右下（顶面）
        glColor3d(1.0,0.5,0.0),          // 设置橘红色
        glVertex3d( 1.0,-1.0, 1.0),      // 右上（底面）
        glVertex3d(-1.0,-1.0, 1.0),      // 左上（底面）
        glVertex3d(-1.0,-1.0,-1.0),      // 左下（底面）
        glVertex3d( 1.0,-1.0,-1.0),      // 右下（底面）

        glColor3d(1.0,0.0,0.0),          // 设置红色
        glVertex3d( 1.0, 1.0, 1.0),      // 右上（前面）
        glVertex3d(-1.0, 1.0, 1.0),      // 左上（前面）
        glVertex3d(-1.0,-1.0, 1.0),      // 左下（前面）
        glVertex3d( 1.0,-1.0, 1.0),      // 右下（前面）
        glColor3d(1.0,1.0,0.0),          // 设置黄色
        glVertex3d( 1.0,-1.0,-1.0),      // 右上（后面）
        glVertex3d(-1.0,-1.0,-1.0),      // 左上（后面）
        glVertex3d(-1.0, 1.0,-1.0),      // 左下（后面）
        glVertex3d( 1.0, 1.0,-1.0),      // 右下（后面）

        glColor3d(0.0,0.0,1.0),          // 设置蓝色
        glVertex3d(-1.0, 1.0, 1.0),      // 右上（左面）
        glVertex3d(-1.0, 1.0,-1.0),      // 左上（左面）
        glVertex3d(-1.0,-1.0,-1.0),      // 左下（左面）
        glVertex3d(-1.0,-1.0, 1.0),      // 右下（左面）
        glColor3d(1.0,0.0,1.0),          // 设置紫蓝色
        glVertex3d( 1.0, 1.0,-1.0),      // 右上（右面）
        glVertex3d( 1.0, 1.0, 1.0),      // 左上（右面）
        glVertex3d( 1.0,-1.0, 1.0),      // 左下（右面）
        glVertex3d( 1.0,-1.0,-1.0),      // 右下（右面）
    glEnd(),                             // 完成正方体绘制
    yRot=yRot+0.2,                       // 增加三角形的旋转变量
    xyzRot=xyzRot-0.15                   // 减小矩形的旋转变量
};

9、其他

    在OpenLuGl窗口下，按F1键显示帮助；按F2键可在全屏模式和窗口模式之间进行切换；按ESC键可以退出OpenLuGl窗口。
}#
--------------------------------------------------------------------
#glClear{
[OpenLuGl32.dll] glClear[]或glClear[Mask]：清除屏幕以及深度缓存

    Mask：整数，工作方式。

    通常，要把该函数设为场景绘制代码的第一个语句。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glLoadIdentity{
[OpenLuGl32.dll] glLoadIdentity[]：重置视图

    glLoadIdentity[]：将X、Y、Z轴移到屏幕的指定位置（该位置由gleAxis(SetX,SetY,SetZ)指定）。

    glLoadIdentity[... ...]：将X、Y、Z轴移到屏幕的中心位置。

    通常在每一个图象绘制之前都要进行此项操作。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glTranslated{
[OpenLuGl32.dll] glTranslated[x,y,z]：移动坐标

    注意：当移动时，不是以屏幕的中心为起点而是以当前所在位置为起点进行移动。
    通常在每一个图象绘制之前都要进行此项操作。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glColor3d{
[OpenLuGl32.dll] glColor3d[r,g,b]：设置颜色

    三个参数分别是红、绿、蓝的颜色强度值，其取值范围是从0.0到1.0。
    一些特殊的颜色：[1.0,0.0,0.0]：红色、[0.0,1.0,0.0]：绿色、[0.0,0.0,1.0]：蓝色、[0.0,0.0,0.0]：黑色、[1.0,1.0,1.0]：白色

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glBegin{
[OpenLuGl32.dll] glBegin[mode]：开始绘图

    glBegin[mode]与glEnd[]必须成对使用，glBegin[mode]表示一个绘图单元的开始，glEnd[]表示一个绘图单元的结束。这一对函数使您能够绘制任意的图形。
    在glBegin[mode]与glEnd[]之间，一般用glVertex3d[...]函数设置绘图点，也可包括glColor3d[r,g,b]设置颜色等函数。mode的取值及意义如下：

    GL_POINTS：表示绘制一系列独立的点。
    GL_LINES：每两点相连成为线段，因此，在glBegin[i]与glEnd[]之间点的个数必须是2的倍数。
    GL_LINE_LOOP：封闭线段。
    GL_LINE_STRIP：顶点相连成为折线。
    GL_TRIANGLES：每三点相连成为一个三角形，因此，在glBegin[i]与glEnd[]之间点的个数必须是3的倍数。
    GL_TRIANGLE_STRIP：相连的三角形带。
    GL_TRIANGLE_FAN：相连的三角形扇。
    GL_QUADS：每四点相连成为一个四边形，因此，在glBegin[i]与glEnd[]之间点的个数必须是4的倍数。
    GL_QUAD_STRIP：相连的四边形带。
    GL_POLYGON：绘制简单、凸多边形的边界。

    该函数可能返回如下运行错误：

    1：glBegin[mode]与glEnd[]没有成对使用。
    2：参数mode非法。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glEnd{
[OpenLuGl32.dll] glEnd[]：结束绘图

    glBegin[mode]与glEnd[]必须成对使用，glBegin[mode]表示一个绘图单元的开始，glEnd[]表示一个绘图单元的结束。

    该函数可能返回如下运行错误：1：glBegin[mode]与glEnd[]没有成对使用。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glVertex3d{
[OpenLuGl32.dll] glVertex3d[X,Y,Z]：设置三维绘图点

    X,Y,Z设置了屏幕坐标系中的一点。

    注意：一般，图形的绘制从顶点开始，要按逆时针方向绘制。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glRotated{
[OpenLuGl32.dll] glRotated[Angle,Xvector,Yvector,Zvector]：使对象围绕轴进行旋转

    Angle为旋转角度，Xvector,Yvector和Zvector一起表示哪一个向量将发生旋转。如果使用(1.0,0.0,0.0)这意味着描述一个向量将沿X轴向右旋转一个单元；如果使用(-1.0,0.0,0.0)这意味着描述一个向量将沿X轴向左旋转一个单元。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glPointSize{
[OpenLuGl32.dll] glPointSize[size]：定义点的尺寸

    设置点的宽度（以象素为单位）。参数size必须大于0.0，缺省时为1.0。若size<=0，取size=1.0。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glLineWidth{
[OpenLuGl32.dll] glLineWidth[width]：设置线宽

    设置线宽（以象素为单位）。参数width必须大于0.0，缺省时为1.0。若width<=0，取width=1.0。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glLineStipple{
[OpenLuGl32.dll] glLineStipple[factor,pattern]：设置线的虚点模式

    设置线为当前的虚点模式。参数pattern是一系列的16位数（0或1），它重复地赋给所指定的线。其中每一位代表一个象素，且从低位开始，1表示用当前颜色绘制一个象素（或比例因子指定的个数），0表示当前不绘制，只移动一个象素位（或比例因子指定的个数）。参数factor是个比例因子，它用来拉伸pattern中的元素，即重复绘制1或移动0，比如，factor为2，则碰到1时就连续绘制2次，碰到0时连续移动2个单元。factor的大小范围限制在1到256之间。在绘制虚点线之前必须先启动一下，即调用函数glEnable(GL_LINE_STIPPLE);若不用，则调用glDisable(GL_LINE_STIPPLE)关闭。

    该函数可能返回如下运行错误：1、参数不符合要求。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glEnable{
[OpenLuGl32.dll] glEnable[cap]：设置OpenGL的各种功能

    与glDisable(cap)配合使用，先用glEnable[cap]设置OpenGL的功能，不用时，用glDisable(cap)取消这种功能。
    例如：glEnable(GL_LINE_STIPPLE)：启用虚点模式。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glDisable{
[OpenLuGl32.dll] glDisable[cap]：取消OpenGL的各种功能

    与glEnable(cap)配合使用，先用glEnable[cap]设置OpenGL的功能，不用时，用glDisable(cap)取消这种功能。
    例如：glDisable(GL_LINE_STIPPLE)：取消虚点模式。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glPolygonMode{
[OpenLuGl32.dll] glPolygonMode[face,mode]：多边形模式设置

    控制多边形指定面的绘制模式。参数face为GL_FRONT、GL_BACK或GL_FRONT_AND_BACK；参数mode为GL_POINT、GL_LINE或GL_FILL，分别表示绘制轮廓点式多边形、轮廓线式多边形或全填充式多边形。缺省时，绘制的是正反面全填充式多边形。

    该函数可能返回如下运行错误：1、参数不符合要求；

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glClearColor{
[OpenLuGl32.dll] glClearColor[r,g,b,Alpha]：设置屏幕清屏的颜色

    r,g,b三个参数分别是红、绿、蓝的颜色强度值，其取值范围是从0.0到1.0。
    Alpha值与透明度有关。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glCallList{
[OpenLuGl32.dll] glCallList(i)：执行显示列表

    i为显示列表的序号。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glListBase{
[OpenLuGl32.dll] glListBase(i)：设置显示列表序列的基序号

    i为显示列表序列的基序号。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glCallLists{
[OpenLuGl32.dll] glCallLists("abc... ...")或glCallLists(n1,n2,... ...)：执行显示列表序列

    glCallLists("abc... ...")：只有一个参数时，该参数必须为字符串。字符串中的每一个字符代表一个显示列表，该显示列表序号与基序号（由glListBase(i)设置）之差等于该字符的ASCII值。

    glCallLists(n1,n2,... ...)：多于一个参数时，每一个参数值等于该参数代表的显示列表序号与基序号（由glListBase(i)设置）之差。

    该函数可能返回如下运行错误：1、只有一个参数时，该参数必须为字符串。2、内存错误。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glGenLists{
[OpenLuGl32.dll] glGenLists(n)：创建一个或多个连续的显示列表，返回显示列表的基序号

    n为显示列表的个数，n>=1。若返回值为0，表示创建失败。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glNewList{
[OpenLuGl32.dll] glNewList(i,mode)：建立显示列表，并编译和执行显示列表

    i为显示列表的序号。mode为工作模式，mode=GL_COMPILE时，仅进行编译；mode=GL_COMPILE_AND_EXECUTE时，编译并执行显示列表。

    该函数必须与glEndList()成对使用。

    不要用该函数对同一个显示列表创建多次，这将引起混乱和不安全。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glEndList{
[OpenLuGl32.dll] glEndList()：结束建立显示列表

    该函数必须与glNewList()成对使用。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glVertex2d{
[OpenLuGl32.dll] glVertex2d(X,Y)：设置二维绘图点

    X,Y设置了屏幕二维坐标系中的一点。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glEdgeFlag{
[OpenLuGl32.dll] glEdgeFlag(bool)：设置边的可见性

    如果bool为真，则边是可见的；如果bool为假，则边是不可见的。

    通常边的可见性不发生变化，除非再一次用不同的参数调用该函数。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glPushMatrix{
[OpenLuGl32.dll] glPushMatrix()：将当前矩阵压入堆栈

    glPushMatrix()与glPopMatrix()要成对使用。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glPopMatrix{
[OpenLuGl32.dll] glPopMatrix()：将当前矩阵弹出堆栈

    glPushMatrix()与glPopMatrix()要成对使用。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glScaled{
[OpenLuGl32.dll] glScaled(sx,sy,sz)：缩放变换

    sx,sy,sz分别表示沿X,Y,Z轴的缩放因子。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glDeleteLists{
[OpenLuGl32.dll] glDeleteLists(list,range)：删除一组连续的显示列表

    list为第一个要删除的显示列表。range为要删除的显示列表数目。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluNewQuadric{
[OpenLuGl32.dll] gluNewQuadric()：创建二次曲面对象

    返回一个二次曲面对象指针。在特定的函数中，可通过该指针访问到该二次曲面对象。二次曲面对象不用时要及时用函数delete(p)删除。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluQuadricDrawStyle{
[OpenLuGl32.dll] gluQuadricDrawStyle(aa,drawStyle)：设置二次曲面绘制模式

    指针aa标识二次曲面对象。drawStyle为绘制模式。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluQuadricNormals{
[OpenLuGl32.dll] gluQuadricNormals(aa,normals)：设置二次曲面法线信息

    指针aa标识二次曲面对象。normals标识二次曲面法线信息。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluSphere{
[OpenLuGl32.dll] gluSphere(aa,radius,slices,stacks)：绘制球

    指针aa标识二次曲面对象（球）。radius为球的半径。slices,stacks为经线和纬线的线圈数。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluQuadricOrientation{
[OpenLuGl32.dll] gluQuadricOrientation(aa,orientation)：设置二次曲面插值计算的方向

    指针aa标识二次曲面对象。orientation表示二次曲面插值计算的方向。orientation=GLU_OUTSIDE表示二次曲面的法线是自曲面向外的；orientation=GLU_INSIDE表示二次曲面的法线是指向二次曲面的。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluQuadricTexture{
[OpenLuGl32.dll] gluQuadricTexture(aa,textureCoords)：设置二次曲面是否生成纹理坐标

    指针aa标识二次曲面对象。textureCoords表示是否为二次曲面生成纹理坐标。textureCoords为真表示生成纹理坐标，否则不生成纹理坐标。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluCylinder{
[OpenLuGl32.dll] gluCylinder(aa,baseRadius,topRadius,height,slices,stacks)：绘制圆柱、圆锥或台锥

    指针aa标识二次曲面对象。baseRadius,topRadius表示台锥体底面半径和顶面半径。height表示台锥的高。slices,stacks为经线和纬线的线圈数。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluDisk{
[OpenLuGl32.dll] gluDisk(aa,innerRadius,outerRadius,slices,loops)：绘制圆盘或圆环

    指针aa标识二次曲面对象。innerRadius,outerRadius表示圆环的内径和外径。slices,loops表示径向的线圈数和周向的等分直线数目。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gluPartialDisk{
[OpenLuGl32.dll] gluPartialDisk(aa,innerRadius,outerRadius,slices,loops,startAngle,sweepAngle)：绘制扇形

    指针aa标识二次曲面对象。innerRadius,outerRadius表示扇形的内径和外径。lices,loops表示径向的线圈数和周向的等分直线数目。startAngle表示起始角度。sweepAngle表示扇形的张开角度。

    该函数可能返回如下运行错误：1、无效的二次曲面对象指针。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleWorkDrawScene{
[OpenLuGl32.dll] gleWorkDrawScene[HFor("rFor")] 或 gleWorkDrawScene[scene,HFor("rFor")]：场景绘制函数

    gleWorkDrawScene将场景绘制函数"rFor"的句柄传送给OpenLuGl32.dll，"rFor"是一个表达式的名称。scene是由函数gleNewScene申请的场景指针。

    该函数可能返回如下运行错误：1、参数个数非法；2：非法的场景指针；3：非法的表达式句柄。

    注意：如果没有通过gleSetWindowMode给OpenLuGl窗口指定一个父窗口，必须手动关闭该函数打开的OpenLuGl窗口。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleDrawScene{
[OpenLuGl32.dll] gleDrawScene[HFor("rFor")] 或 gleDrawScene[scene,HFor("rFor")]：场景绘制函数

    gleDrawScene将场景绘制函数"rFor"的句柄传送给OpenLuGl32.dll，"rFor"是一个表达式的名称。scene是由函数gleNewScene申请的场景指针。

    该函数可能返回如下运行错误：1、参数个数非法；2：非法的场景指针；3：非法的表达式句柄。

    注意：该函数打开的绘图窗口会被OpenLuGl自动关闭。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleNewScene{
[OpenLuGl32.dll] gleNewScene["aaa"]：申请场景

    字符串"aaa"是场景的窗口类的名称。每一个场景对应着一个窗口类。该函数返回一个场景指针，用在场景绘制函数gleWorkDrawScene或gleDrawScene中。场景不用时，须用函数gleDeleteScene销毁。

    该函数可能返回如下运行错误：1、非法的字符串地址；2：字符串太长，应小于80个字符。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleDeleteScene{
[OpenLuGl32.dll] gleDeleteScene[scene]：销毁场景

    销毁场景scene（场景指针），该场景是由函数gleNewScene申请的。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleSetWorkMode{
[OpenLuGl32.dll] gleSetWorkMode[mode]：设置工作模式

    若mode为真，设置为快速模式；若mode为假，设置为计时器模式。按F3可在快速模式和计时器模式之间进行切换。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleAxesAngle{
[OpenLuGl32.dll] gleAxesAngle[]：显示坐标和旋转角度

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleAxisRate{
[OpenLuGl32.dll] gleAxisRate(x)：设置坐标移动的速率

    键盘操纵屏幕坐标移动速率的缺省值是0.1，可用该函数重新设置坐标移动的速率。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleAngle{
[OpenLuGl32.dll] gleAngle(i)：获得由键盘操纵的旋转角度

    在OpenLuGl32.dll中设置了三个可由键盘操纵的数，这三个数可由函数gleAngle[i]获得，使用这三个数并与函数glRotated[...]配合可使图象产生旋转。

    Shift + →：使gleAngle[1]值增加；
    Shift + ←：使gleAngle[1]值减少；
    Shift + ↑：使gleAngle[2]值增加；
    Shift + ↓：使gleAngle[2]值减少；
    Shift + PageUp： 使gleAngle[3]值减少；
    Shift + PageDown：使gleAngle[3]值增加；
    Shift + Home：使gleAngle[i]值为0。

    在每一个绘图单元前加上以下代码，可用键盘操纵图象沿X、Y、Z轴旋转：
    glRotated[gleAngle(1),1.0,0.0,0.0]; //使图象沿X轴旋转。
    glRotated[gleAngle(2),0.0,1.0,0.0]; //使图象沿Y轴旋转。
    glRotated[gleAngle(3),0.0,0.0,1.0]; //使图象沿Z轴旋转。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleAngleRate{
[OpenLuGl32.dll] gleAngleRate(x)：键盘操纵图象旋转的速率

    键盘操纵图象旋转的速率的缺省值是0.5，可用该函数重新设置图象旋转的速率。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glePrintCn{
[OpenLuGl32.dll] glePrintCn["我的 OpenFC & OpenGL !"]：输出中文字符串

    该函数速度很慢，但能用来输出汉字和英文。

    该函数可能返回如下运行错误：1、字符串地址错误。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glePrint{
[OpenLuGl32.dll] glePrint["abc 123 !!!"]：输出英文字符串

    该函数速度很快，但不能用来输出汉字。

    该函数可能返回如下运行错误：1、字符串地址错误。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleVirtualKey{
[OpenLuGl32.dll] gleVirtualKey[n]或gleVirtualKey[n,bool]：键盘状态函数

    gleVirtualKey[n]：获取键盘上键的状态，n为键盘代码，0<=n<256。当键按下时该函数返回1（逻辑真），否则返回0（逻辑假）。

    gleVirtualKey[n,bool]：设置键盘上键的状态，n为键盘代码，0<=n<256。将键盘代码设为逻辑值bool。

    该函数可能返回如下运行错误：1、键盘代码非法。2、参数不符合要求。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleCreatePrintCnList{
[OpenLuGl32.dll] gleCreatePrintCnList[i,str]：创建中文字符串显示列表

    将中文字符串str存入显示列表并返回该显示列表的句柄n。返回值为0表示创建失败。创建成功后可以用glePrintCnList[p]显示字符串。调用delete(p)可释放 显示列表所占的空间。
    通常在绘图代码中，首先启动OpenLuGl窗口，然后在窗口的初始化代码（该部分代码在窗口启动后仅执行一次）中使用该函数。在场景绘制代码中使用glePrintcnList[p]显示字符串。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#glePrintCnList{
[OpenLuGl32.dll] glePrintCnList[i]：显示存储在列表中的中文字符串

    n为整数，标识中文字符串显示列表。该函数的速度比glPrintCn["..."]要快。通常在绘图代码中，首先启动OpenLuGl窗口，然后在窗口的初始化代码（该部分代码在窗口启动后仅执行一次）中使用gleCreatPrintCnList[str]创建中文字符串显示列表；在场景绘制代码（该部分代码被循环执行）中使用glePrintcnList[i]显示中文字符串。

    该函数可能返回如下运行错误：1、无法显示列表；2、无法找到指定的显示列表。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleIsInitScene{
[OpenLuGl32.dll] gleIsInitScene()：判断是否需要初始化场景

    在第一次执行场景代码之前，或者按F1切换窗口和全屏显示模式时，都需要初始化场景，此时该函数返回1（逻辑真），否则返回0（逻辑假）。
    一般在场景绘制代码的开始处使用该函数。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleGetWindowSize{
[OpenLuGl32.dll] gleGetWindowSize(x,y)：获得绘图窗口尺寸

    x为窗口宽度，y为窗口高度。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleGetMouseMsg{
[OpenLuGl32.dll] gleGetMouseMsg(Msg,x,y)：获得鼠标消息

    Msg为鼠标消息。x,y为产出此鼠标消息的鼠标位置，以窗口左上角为坐标原点，x表示离原点的水平距离，y表示离原点的垂直距离。

	鼠标消息 说明 
	WM_MOUSEMOVE		鼠标移动 
	WM_LBUTTONDOWN		鼠标左键按下 
	WM_LBUTTONUP		鼠标左键放开 
	WM_LBUTTONDBLCLK	双击鼠标左键 
	WM_RBUTTONDOWN		鼠标右键按下 
	WM_RBUTTONUP		鼠标右键放开 
	WM_RBUTTONDBLCLK	双击鼠标右键 
	WM_MBUTTONDOWN		鼠标中键按下 
	WM_MBUTTONUP		鼠标中键放开 
	WM_MBUTTONDBLCLK	双击鼠标中键 

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleClear{
[OpenLuGl32.dll] gleClear()：清除申请的空间

    该函数删除以前申请但现在已无用的空间。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleSetWindowMode{
[OpenLuGl32.dll] gleSetWindowMode(GLE_ParentWindow,hParentWindow,GLE_WindowStyle,WindowStyle,... ...)：设置窗口模式

    该函数用于设置OpenLuGl窗口模式。设置窗口模式后仅在切换窗口时起作用。该函数可一次设置多组参数，每组参数的第一个标识参数的类型，后面紧跟着参数值。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleSetWindowText{
[OpenLuGl32.dll] gleSetWindowText("abc")：设置窗口标题

    将绘图窗口的标题设为指定的字符串。

    该函数可能返回如下运行错误：1、参数必须为字符串。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleShowCursor{
[OpenLuGl32.dll] gleShowCursor(bool)：显示或隐藏光标

    bool为逻辑真时显示光标，bool为逻辑假时隐藏光标。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleOr{
[OpenLuGl32.dll] gleOr(i1,i2,... ...)：按位或函数

    求无符号整数i1,i2,... ...的按位或。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleMessageBox{
[OpenLuGl32.dll] gleMessageBox["消息框中显示的字符串","作为标题的字符串"]：消息框函数

    格式1：gleMessageBox["消息框中显示的字符串","作为标题的字符串"]
    格式2：gleMessageBox["消息框中显示的字符串","作为标题的字符串",nType]
    格式3：gleMessageBox[HWND,"消息框中显示的字符串","作为标题的字符串",nType]

    说明：HWND标识将被创建的消息框的拥有窗口，如果此参数为0，则消息框没有拥有窗口；nType指定一个决定对话框的内容和行为的位标志集，此参数可以为下列标志组中标志的组合：
	MB_OK
	MB_OKCANCEL
	MB_YESNO
	MB_YESNOCANCEL
    其他标志请参考WINDOWS API手册中该函数的说明。
    返回值：如果没有足够的内存来创建消息框，则返回值为0。如果函数调用成功，则返回值为下列对话框返回的菜单项目值中的一个：
	IDABORT：Abort按钮被选中。
	IDCANCEL：Cancel按钮被选中。
	IDIGNORE：Ignore按钮被选中。
	IDNO：NO按钮被选中。
	IDOK：OK按钮被选中。
	IDRETRY：RETRY按钮被选中。
	IDYES：YES按钮被选中。
    标志和返回值的具体值请参考WINDOWS API手册，也可以自行验证。

    该函数可能返回如下运行错误：1：参数设置不符合要求；2：指定的字符串不存在。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleReSetPara{
[OpenLuGl32.dll] gleReSetPara("x1",&x1,"x2",&x2,... ...)：重置参数

    该函数打开一个模态窗口对指定的参数进行重新设置。该函数的参数必须成对，每对参数中，第一个参数为字符串，对第二个参数进行说明，第二个参数为要修改的参数，第二个参数必须用引用方式传递。

    该函数可能返回如下运行错误：1：没有参数或参数不成对；2：每对参数中，第一个参数必须为字符串。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleFindWindow{
[OpenLuGl32.dll] gleFindWindow("ClassName","WindowName")或gleFindWindow(hwndParent,hwndChildAfter,"ClassName","WindowName")：获得一个（顶层）窗口的句柄

    格式1：gleFindWindow("ClassName","WindowName")：获得一个顶层窗口的句柄
    格式1：gleFindWindow(hwndParent,hwndChildAfter,"ClassName","WindowName")：获得一个窗口的句柄

    说明：hwndParent为要查找子窗口的父窗口的句柄。hwndChildAfter为子窗口句柄，查找从在Z序中的下一个子窗口开始，子窗口必须为hwndParent的直接子窗口而非后代窗口。"ClassName"为窗口类名字符串。"WindowName"为窗口标题字符串。

    该函数可能返回如下运行错误：1：参数不符合要求；2：窗口类名和窗口标题必须为字符串。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleRegConstState{
[OpenLuGl32.dll] gleRegConstState()：检查常量注册情况

    该函数检查OpenLuGl向Lu注册常量的情况，仅显示未注册的常量。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleMoveWindow{
[OpenLuGl32.dll] gleMoveWindow()、gleMoveWindow(x)、gleMoveWindow(Wx,Wy,Width,Height)或gleMoveWindow(Wx,Wy,Width,Height,x)：移动窗口，改变窗口的位置和尺寸

    格式1：gleMoveWindow()：OpenLuGl窗口的实际位置坐标为窗口原来的位置坐标与父窗口位置坐标之和。
    格式2：gleMoveWindow(x)：OpenLuGl窗口的实际位置坐标即窗口原来的位置坐标。
    格式3：gleMoveWindow(Wx,Wy,Width,Height)：OpenLuGl窗口的实际位置坐标为指定的坐标值Wx,Wy与父窗口位置坐标之和。
    格式4：gleMoveWindow(Wx,Wy,Width,Height,x)：OpenLuGl窗口的实际位置坐标即指定的坐标值Wx,Wy。

    说明：Wx,Wy为新指定的窗口位置。Width,Height为新指定的窗口宽度和高度。x为任意值。OpenLuGl窗口的实际位置坐标指gleMoveWindow()函数内部调用API函数MoveWindow()时用的实际位置参数。

    该函数可能返回如下运行错误：1：参数个数不符合要求。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#gleSaveScene{
[OpenLuGl32.dll] gleSaveScene()：将OpenLuGl图像保存为文件。

    该函数将OpenLuGl图像保存为文件。仅支持BMP文件。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#lgMesh{
[OpenLuGl32.dll] lgMesh(X1,X2,Y1,Y2,x1,x2,y1,y2)：绘制二维网格。

    绘制二维网格(X1,X2,Y1,Y2)，每个坐标轴10等分；(x1,x2,y1,y2)将标注在坐标轴上。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#lgMesh3d{
[OpenLuGl32.dll] lgMesh3d(X1,X2,Y1,Y2,Z1,Z2,x1,x2,y1,y2,z1,z2)：绘制三维网格。

    绘制三维网格(X1,X2,Y1,Y2,Z1,Z2)，每个坐标轴10等分；(x1,x2,y1,y2,z1,z2)将标注在坐标轴上。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#lgPlot{
[OpenLuGl32.dll] lgPlot[]：绘制一元函数图象

lgPlot[hF,-15.0,15.0,LG_Y,-20.0,20.0,LG_AXES,-5.0,5.0,-3.0,3.0,LG_PLOTPOINTS,500,LG_CUT,LG_NOAXES,LG_NODRAW];

说明：hF为已经定义的一元函数句柄；-15.0,15.0为自变量范围；LG_Y,-20.0,20.0为函数值范围，若缺省函数值范围，则自动生成自变量区间内的完整图象；LG_AXES,-5.0,5.0,-3.0,3.0设定屏幕坐标上的绘图区域，缺省的绘图区域是-5.0,5.0,-5.0,5.0；LG_PLOTPOINTS,500设定了自变量的分割数目，缺省的分割数目为1000；LG_CUT表示将切除绘图区域外的线段，缺省是将绘图区域外的线段绘制在绘图区域的边界上；LG_NOAXES表示不绘制坐标轴，缺省是绘制坐标轴；LG_NODRAW表示不绘制函数图象，只绘制坐标轴，缺省是既绘制图象又绘制坐标轴。LG_Y、LG_AXES、LG_PLOTPOINTS、LG_CUT、LG_NOAXES、LG_NODRAW是可选项。

该函数可能返回如下运行错误：

1、参数不匹配；
2、不可识别的描述符；
3、非法的表达式句柄；
4、指定的表达式不是一元函数；
5、不可识别参数；
6、一元函数返回值非法。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#lgParaPlot{
[OpenLuGl32.dll] lgParaPlot[]：绘制平面曲线的参数方程图象

lgParaPlot[hX,hY,-15.0,15.0,LG_XY,-15.0,15.0,-20.0,20.0,LG_AXES,-5.0,5.0,-3.0,3.0,LG_PLOTPOINTS,500,LG_CUT,LG_NOAXES,LG_NODRAW];

说明：hX,hY为已经定义的参数方程句柄；-15.0,15.0为自变量范围；LG_XY,-15.0,15.0,-20.0,20.0限定X和Y的变化范围，若缺省此项，则自动生成自变量区间内的完整图象；LG_AXES,-5.0,5.0,-3.0,3.0设定屏幕坐标上的绘图区域，缺省的绘图区域是-5.0,5.0,-5.0,5.0；LG_PLOTPOINTS,500设定了自变量的分割数目，缺省的分割数目为1000；LG_CUT表示将切除绘图区域外的线段，缺省是将绘图区域外的线段绘制在绘图区域的边界上；LG_NOAXES表示不绘制坐标轴，缺省是绘制坐标轴；LG_NODRAW表示不绘制函数图象，只绘制坐标轴，缺省是既绘制图象又绘制坐标轴。LG_XY、LG_AXES、LG_PLOTPOINTS、LG_CUT、LG_NOAXES、LG_NODRAW是可选项。

该函数可能返回如下运行错误：

1、参数不匹配；
2、不可识别的描述符；
3、非法的表达式句柄；
4、指定的表达式不是一元函数；
5、不可识别参数；
6、一元函数返回值非法。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#lgPlot3d{
[OpenLuGl32.dll] lgPlot3d[]：绘制二元函数图象

lgPlot3d[hF,-5.0,5.0,-6.0,6.0,LG_Z,-2.0,2.0,LG_AXES,-3.0,5.0,-3.0,6.0,-6.0,0.0,LG_PLOTPOINTS,50,30,LG_CUT,LG_NOAXES,LG_NOMESH,LG_NODRAW];

说明：hF为已经定义的二元函数句柄；-5.0,5.0为x的变化范围，-6.0,6.0为y的变化范围；LG_Z,-2.0,2.0为z的变化范围，若缺省此项，则自动生成自变量区间内的完整图象；LG_AXES,-3.0,5.0,-3.0,6.0,-6.0,0.0设定屏幕坐标上的绘图区域，-3.0,5.0设定X轴的位置，-3.0,6.0设定Y轴的位置，-6.0,0.0设定Z轴的位置，缺省的绘图区域是-5.0,5.0,-5.0,5.0,-5.0,5.0；LG_PLOTPOINTS,50,30中的50和30设定了x和y的分割数目，缺省的分割数目分别是50和50；LG_CUT表示将切除绘图区域外的图象，缺省是将绘图区域外的图象绘制在绘图区域的边界上；LG_NOAXES表示不绘制坐标轴，缺省是绘制坐标轴；LG_NOMESH表示不绘制网格，缺省是绘制网格；LG_NODRAW表示不绘制函数图象，只绘制坐标轴，缺省是既绘制图象又绘制坐标轴。LG_Z、LG_AXES、LG_PLOTPOINTS、LG_CUT、LG_NOAXES、LG_NOMESH、LG_NODRAW是可选项。

该函数可能返回如下运行错误：

1、参数不匹配；
2、不可识别的描述符；
3、非法的表达式句柄；
4、指定的表达式不是二元函数；
5、不可识别参数；
6、二元函数返回值非法。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
#lgParaPlot3d{
[OpenLuGl32.dll] lgParaPlot3d[]：绘制三维参数方程图象

lgParaPlot3d[hX,hY,hZ,-5.0,5.0,-6.0,6.0,LG_XYZ,-3.0,3.0,-5.0,5.0,-2.0,2.0,LG_AXES,-3.0,5.0,-3.0,6.0,-6.0,0.0,LG_PLOTPOINTS,50,30,LG_CUT,LG_NOAXES,LG_NOMESH,LG_NODRAW];

说明：hX,hY,hZ为已经定义的参数方程句柄；-5.0,5.0为x的变化范围，-6.0,6.0为y的变化范围；LG_XYZ,-3.0,3.0,-5.0,5.0,-2.0,2.0为限定的"X","Y","Z"的变化范围，若缺省此项，则自动生成自变量区间内的完整图象；LG_AXES,-3.0,5.0,-3.0,6.0,-6.0,0.0设定屏幕坐标上的绘图区域，-3.0,5.0设定X轴的位置，-3.0,6.0设定Y轴的位置，-6.0,0.0设定Z轴的位置，缺省的绘图区域是-5.0,5.0,-5.0,5.0,-5.0,5.0；LG_PLOTPOINTS,50,30中的50和30设定了x和y的分割数目，缺省的分割数目分别是50和50；LG_CUT表示将切除绘图区域外的图象，缺省是将绘图区域外的图象绘制在绘图区域的边界上；LG_NOAXES表示不绘制坐标轴，缺省是绘制坐标轴；LG_NOMESH表示不绘制网格，缺省是绘制网格；LG_NODRAW表示不绘制函数图象，只绘制坐标轴，缺省是既绘制图象又绘制坐标轴。LG_XYZ、LG_AXES、LG_PLOTPOINTS、LG_CUT、LG_NOAXES、LG_NOMESH、LG_NODRAW是可选项。

该函数可能返回如下运行错误：

1、参数不匹配；
2、不可识别的描述符；
3、非法的表达式句柄；
4、指定的表达式不是二元函数；
5、不可识别参数；
6、二元函数返回值非法。

    详细请参考“OpenLuGl用户指南（openlugl.htm）”。
}#
--------------------------------------------------------------------
