LinuxではGLUTをインストールしてください
LinuxでSWI-PrologとplOpenGLパッケージを使います
plOpenGLパッケージをインストールしてなければSWI-Prologにインストールしてください
SWI-Prologインタープリタを起動したら
sample1.pl
LinuxでSWI-PrologとplOpenGLパッケージを使います
plOpenGLパッケージをインストールしてなければSWI-Prologにインストールしてください
SWI-Prologインタープリタを起動したら
$swipl sample1.plクエリでmain関数を呼び出すと
?-main.プログラムが動作します
sample1.pl
:- use_foreign_library(foreign(plOpenGL)). :- use_module(library(plOpenGL)). :- use_module(library(plGL_defs)). :- use_module(library(plGLU_defs)). :- use_module(library(plGLUT_defs)). :- use_module(library(plGL)). :- use_module(library(plGLU)). :- use_module(library(plGLUT)). win_width(940). win_height(680). display:- kGL_COLOR_BUFFER_BIT(GL_COLOR_BUFFER_BIT), kGL_DEPTH_BUFFER_BIT(GL_DEPTH_BUFFER_BIT), kGL_TRIANGLES(GL_TRIANGLES), glClear(GL_COLOR_BUFFER_BIT \/ GL_DEPTH_BUFFER_BIT), glLoadIdentity, glTranslatef(0.0, 0.0, -5.0), glBegin(GL_TRIANGLES), glColor3f(0.0, 1.0, 0.0), glVertex3f( -1.0, -1.0, 0.0), glColor3f(1.0, 0.0, 0.0), glVertex3f( 0.0,1.0, 0.0), glColor3f(0.0, 0.0, 1.0), glVertex3f(1.0,-1.0, 0.0), glEnd, glutSwapBuffers. keyboard(27,_,_) :- glutDestroyWindow. reshape:- kGL_PROJECTION(GL_PROJECTION), kGL_MODELVIEW(GL_MODELVIEW), X is 0, Y is 0, win_width(W), win_height(H), ASPECT is float(W) / float(H), write("reshape OK"),nl, glViewport(X,Y,W,H), glMatrixMode(GL_PROJECTION), glLoadIdentity, gluPerspective(45.0,ASPECT,0.1,100.0), glMatrixMode(GL_MODELVIEW), glLoadIdentity. init:- kGL_LEQUAL(GL_LEQUAL), kGL_DEPTH_TEST(GL_DEPTH_TEST), kGL_SMOOTH(GL_SMOOTH), kGL_PERSPECTIVE_CORRECTION_HINT(GL_PERSPECTIVE_CORRECTION_HINT), kGL_NICEST(GL_NICEST), write("init OK"),nl, glClearColor(0.9, 0.9, 0.9, 1.0), glShadeModel(GL_SMOOTH), glClearDepth(1.0), glEnable(GL_DEPTH_TEST), glDepthFunc(GL_LEQUAL), glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST). idle:- display. main:- win_width(W), win_height(H), kGLUT_DOUBLE(GLUT_DOUBLE), kGLUT_RGB(GLUT_RGBA), kGLUT_DEPTH(GLUT_DEPTH), glutInit, glutInitDisplayMode(GLUT_DOUBLE \/ GLUT_RGBA \/ GLUT_DEPTH), glutInitWindowSize(W, H), glutInitWindowPosition(0,0), glutCreateWindow('OpenGL sample1'), init, glutDisplayFunc, glutIdleFunc(idle), glutReshapeFunc, glutKeyboardFunc, glutMainLoop.
コメントをかく