OpenGL:組み込みの幾何形状

gluオブジェクトとして用意されているものは以下のとおりです。

組み込み幾何形状を使用するために必要なこと

たったこれだけ!

#include <GL/freeglut.h>
glutInit(&argc,argv);

で初期化した以後に使用可能です。

長方形

glRect(x1,y1,x2,y2);
glRectv(pt1,pt2);

z=0になっている。
OpenGL3では非推奨です

glutWireSphere() glutSolidSphere()
wiresphere.png solidsphere.png
void gluSphere(
    GLUquadricObj *qobj,
    GLdouble radius,
    GLint slices,
    GLint stacks
);

オブジェクトポインタ
半径
経度方向の分割数
緯方向の分割数
glutWireSphere(double radius, int slices, int stacks);  
glutSolidSphere(double radius, int slices, int stacks);

GLU_FILL GLU_LINE

立方体

原点を中心とした立方体。
sizeは1辺の長さ。
solidcube.png
glutWireCube(double size);  
glutSolidCube(double size);

たとえば

glutSolidCube(1.0);

とすると原点を中心として±0.5の座標の立方体になる。
ずらしたかったらTranslateするしかない。

円錐、円錐柱、円柱

solidcylinder.png
void gluCylinder(
    GLUquadricObj *qobj,
    GLdouble baseradius,
    GLdouble topRadius,
    GLdouble height,
    GLint slices,
    GLint stacks
);

オブジェクトポインタ
底面の半径
上面の半径
高さ
経方向の分割数
緯方向の分割数

GLU_FILL GLU_LINE

glutWireCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks);
glutSolidCylinder( GLdouble radius, GLdouble height, GLint slices, GLint stacks);

コーン

solidcone.png
glutWireCone(double radius, double height, int slices, int stacks);    
glutSolidCone(底面の半径,円錐の高さ,円の分割数,高さの分割数) 

円板

void gluDisk(
    GLUquadricObj *qobj,
    GLdouble innerRadius,
    GLdouble outerRadius,
    GLint slices,
    Lint loops
);

オブジェクトポインタ
内側の半径
外側の半径
円周方向の分割数
//半径方向の分割数

GLU_FILL GLU_LINE

部分円板

void gluDisk(
    GLUquadricObj *qobj,//オブジェクトポインタ
    GLdouble innerRadius,//内側の半径
    GLdouble outerRadius,//外側の半径
    GLint slices,//円周方向の分割数
    Lint loops,//半径方向の分割数
    Ldouble startAngle,//開始角度
    GLdouble sweepAngle//扇の角度
);

GLU_FILL GLU_LINE

トーラス(ドーナツ)

solidtorus.png
glutWireTorus(double inner_radius, double outer_radius, int sides, int rings);  
glutSolidTorus(double inner_radius, double outer_radius, int sides, int rings);

ティーポット

solidteapot.png
glutWireTeapot(double size);  
glutSolidTeapot(double size);

菱型

RhombicDodecahedron.png
glutWireRhombicDodecahedron( void );
glutSolidRhombicDodecahedron( void );

シェルピンスキー四面体

SierpinskiSponge.png
glutWireSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale );
glutSolidSierpinskiSponge ( int num_levels, GLdouble offset[3], GLdouble scale );

levels 再起構造の階層の深さ
offset オフセット。物体の初期座標(x,y,z)
scale 大きさ
Bibliography
サポートサイト Wikidot.com glut