スキップしてメイン コンテンツに移動

投稿

ラベル(OpenGL)が付いた投稿を表示しています

OpenGL: Visual C++ 2008 Express EditionでGLUTを使う

Windowsに Visual C++ 2008 Express Edition をダウンロード・インストールする。このバージョンではPlatform SDKは同梱されている。 GLUT for Win32 からglut-3.7.6-bin.zipをダウンロードする。ファイルを展開し以下に示すフォルダにコピーする。 glut.h → C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\gl glut32.lib → C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib glut32.dll → C:\WINDOWS\System これで準備完了。因みにglaux.libは存在せず、リンクする必要はなくなっている。 使用例 C++: OpenGLで正十二面体を回転させる で示したソースを dodecahedron.cpp として保存し、以下のコマンドをコマンドプロンプト上で実行する。Visual Studio 2008へのパス(C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools)は通しておくこと。 vsvars32 cl dodecahedron.cpp /O2 /FIwindows.h dodecahedron これで回転している正十二面体が表示されるはずだ。

C++: OpenGLで正十二面体を回転させる

どう書く?org にポリゴン表示のお題があるのだが、なんとなく時機を逸してしまった感があるのでここで。でも投稿を見た限り、どれもOpenGL使ってないなぁ。真っ先に挙がると思っていたのだが。 ここでは、OpenGL(GL/GLU/GLUT)を使って正十二面体を回転させている。ちょっと変更するだけで、マウス操作を加えたり、タイマー関数を利用したりできる。言語は敢えてC++で。GLUT使うなら本当はCの方がシックリ来るけど。コンパイルはWindowsだろうが、Linuxだろうが問題ないはず。 以下、ソースコード。 #include <GL/gl.h> #include <GL/glu.h> #include <GL/glut.h> class Rotate3D { private: static GLdouble m_matrix[16]; static double m_spin; static void Draw(); static void Rotate(GLdouble, GLdouble, GLdouble); static void Display(); static void SpinDisplay(); static void Reshape(int, int); public: Rotate3D() { } virtual ~Rotate3D() { } void Init(); }; GLdouble Rotate3D::m_matrix[16]; double Rotate3D::m_spin = 0.0; void Rotate3D::Draw(void) { glColor3d(0.5, 0.5, 0.5); glutSolidDodecahedron(); } void Rotate3D::Rotate(GLdouble x, GLdouble y, GLdouble z) { glTranslated(0.0, 0.0, -10.0); glRotated(x, 1.0, 0.0, 0.0); glRotated(y, 0.0, 1.0, 0.0); ...