QtとC++とOpenGLで三角錐もどきを表示
QtとC++とOpenGLを使って三角錐に見えるものを表示してみた。
目の錯覚で立体的に三角錐に見えますが、実際は三角錐ではありません。
本当は、光を当てたりしなければいけないのですが(ライティング)、色の具合で三角錐に見えてしまいます。 みんなも三角錐に描画してる風に見えるはず、大丈夫かな
以下はソース.
#include <QApplication> #include <QGLWidget> class Sample : public QGLWidget { public: Sample(QWidget *parent = NULL) : QGLWidget(parent) { this->setWindowTitle("Sample"); this->resize(450, 450); } protected: void initializeGL(){ } void resizeGL(int w, int h){ glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glRotatef(20,0,0,1); glEnable(GL_DEPTH_TEST); glEnable(GL_MULTISAMPLE); glFrustum(-1.0, 1.0, -1.0, 1.0, 3.0, 10000.0); glMatrixMode(GL_MODELVIEW); } void paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glBegin(GL_QUADS); glVertex3f(-0.5, 0.5, -10); glColor3f(1,0,0); glVertex3f(0.5, 0.5, -3); glColor3f(0,1,0); glVertex3f(0.5, -0.5, -3); glColor3f(0,0,1); glVertex3f(-0.5, -0.5, -6); glEnd(); glFlush(); } }; int main (int argc, char* argv[]) { QApplication app(argc, argv); Sample p; p.show(); return app.exec(); }