void gluSphere(
GLUquadricObj qobj,
GLdouble radius,
GLint slices,
GLint stacks
);
其中各个参数的含义是这样的:
qobj
利用gluNewQuadric创建的一个二次对象
radius
圆的半径
slices
stacks是对圆的划分参数。用Ellipse(float x,float y,float w,float h)吧,这是画椭圆的函数,x,y为中心坐标,w,h是椭圆的宽高,如果w=h那就是一个圆了,比如Ellipse(100,100,50,50)就是在100,100位置画一个直径为50的圆相机是一样的,加上防暴型外壳级别相机中,基于工业级防爆要求很复杂,主要是防水,防结露,防气,防机械冲击基本上密封状态下,许多壳牌也比照相机的情况下更昂贵,相机不高或低,防暴外壳在千元以上。glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(Rcos(2Pi/ni), Rsin(2Pi/ni));
glEnd();
上面4行代码就是画半径为R的圆用的, 如果你要让圆的半径是5, 圆心在5, 5的话
需要改成
glBegin(GL_LINE_LOOP);
for(i=0; i<n; ++i)
glVertex2f(5 + 5cos(2Pi/ni), 5 + 5sin(2Pi/ni));
glEnd();
或者把R改成5需要把椭圆的弧线拆分成直线段。当线段足够密集的时候,在屏幕上看上去就圆了
在xy的直角坐标系中,对于椭圆,将圆心放在原点,长轴(长半径为r1)与x轴重合,短轴(短半径为r2)与y轴重合,那从圆心出发与x轴正方向夹角a的射线与椭圆交点为:
(
r1cosa
,
r2sina
)
你可以这样画椭圆以后通过OpenGL矩阵进行平移和旋转。圆就是长短轴相等的椭圆~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)