私はMacOSXを使用しており、MountainLionで実行しています。1年ほど前、EclipseでプログラミングできるようにPyGameをインストールしました。私はかなり満足していましたが、コードが完成していなかったために少し気が遠くなりました。私はそれを耕し、これまでのところすべてに耐えることができました。それから、今日、私はいくつかのPyOpenGLを試すことにしました。pipを使用してインストールし、次のコードをコピーしてWindowsに貼り付けました(実際のコードは問題ではないため、ここで続行します)。ほとんどすべてが警告を発します。ほとんど全部。サイドバーは黄色のしっかりした壁です。
次のようなコード行
glBegin(GL_TRIANGLES)
次のようなエラーを教えてください
undefined variable: GL_TRIANGLES
undefined variable: glBegin
Eclipse> Preferences> Pydev> Editor> Code Analysisに移動し、未定義の変数を無視するようにEclipseに指示しても役に立ちません。Pygameのような他のモジュールも私のためにこれを行います。
これは私を悩ませます。多くの。そして、私は本当にLWJGLとJavaに強制的に戻されたくありません。
この問題を完全に修正する方法はありますか?
#!/usr/bin/env python
from OpenGL.GL import *
from OpenGL.GLU import *
import pygame
def pyramid():
glBegin(GL_TRIANGLES)
glColor3f(1.0, 0.0, 0.0) # // Red
glVertex3f(0.0, 1.0, 0.0) # // Top Of Triangle (Front)
glColor3f(0.0, 1.0, 0.0) # // Green
glVertex3f(-1.0, -1.0, 1.0) # // Left Of Triangle (Front)
glColor3f(0.0, 0.0, 1.0) # // Blue
glVertex3f(1.0, -1.0, 1.0) # // Right Of Triangle (Front)
glColor3f(1.0, 0.0, 0.0) # // Red
glVertex3f(0.0, 1.0, 0.0) # // Top Of Triangle (Right)
glColor3f(0.0,0.0, 1.0) # // Blue
glVertex3f(1.0, -1.0, 1.0) # // Left Of Triangle (Right)
glColor3f(0.0, 1.0, 0.0) # // Green
glVertex3f(1.0, -1.0, -1.0) # // Right Of Triangle (Right)
glColor3f(1.0, 0.0, 0.0) # // Red
glVertex3f(0.0, 1.0, 0.0) # // Top Of Triangle (Back)
glColor3f(0.0,1.0, 0.0) # // Green
glVertex3f(1.0, -1.0, -1.0) # // Left Of Triangle (Back)
glColor3f(0.0, 0.0, 1.0) # // Blue
glVertex3f(-1.0, -1.0, -1.0) # // Right Of Triangle (Back)
glColor3f(1.0, 0.0, 0.0) # // Red
glVertex3f(0.0, 1.0, 0.0) # // Top Of Triangle (Left)
glColor3f(0.0, 0.0, 1.0) # // Blue
glVertex3f(-1.0, -1.0, -1.0) # // Left Of Triangle (Left)
glColor3f(0.0, 1.0, 0.0) # // Green
glVertex3f(-1.0, -1.0, 1.0) # // Right Of Triangle (Left)
glEnd()
glBegin(GL_QUADS)
glColor3f(0.0, 0.0, 1.0)
glVertex3f(-1.0, -1.0, -1.0)
glColor3f(0.0, 1.0, 0.0)
glVertex3f(1.0, -1.0, -1.0)
glColor3f(0.0, 0.0, 1.0)
glVertex3f(1.0, -1.0, 1.0)
glColor3f(0.0, 1.0, 0.0)
glVertex3f(-1.0, -1.0, 1.0)
glEnd()
def cube():
glBegin(GL_QUADS)
glColor3f(0.0, 1.0, 0.0) # // Set The Color To Green
glVertex3f(1.0, 1.0, -1.0) # // Top Right Of The Quad (Top)
glVertex3f(-1.0, 1.0, -1.0) # // Top Left Of The Quad (Top)
glVertex3f(-1.0, 1.0, 1.0) # // Bottom Left Of The Quad (Top)
glVertex3f(1.0, 1.0, 1.0) # // Bottom Right Of The Quad (Top)
glColor3f(1.0, 0.5, 0.0) # // Set The Color To Orange
glVertex3f(1.0, -1.0, 1.0) # // Top Right Of The Quad (Bottom)
glVertex3f(-1.0, -1.0, 1.0) # // Top Left Of The Quad (Bottom)
glVertex3f(-1.0, -1.0, -1.0) # // Bottom Left Of The Quad (Bottom)
glVertex3f(1.0, -1.0, -1.0) # // Bottom Right Of The Quad (Bottom)
glColor3f(1.0, 0.0, 0.0) # // Set The Color To Red
glVertex3f(1.0, 1.0, 1.0) # // Top Right Of The Quad (Front)
glVertex3f(-1.0, 1.0, 1.0) # // Top Left Of The Quad (Front)
glVertex3f(-1.0, -1.0, 1.0) # // Bottom Left Of The Quad (Front)
glVertex3f(1.0, -1.0, 1.0) # // Bottom Right Of The Quad (Front)
glColor3f(1.0, 1.0, 0.0) # // Set The Color To Red
glVertex3f(1.0, -1.0, -1.0) # // Top Right Of The Quad (Back)
glVertex3f(-1.0, -1.0, -1.0) # // Top Left Of The Quad (Back)
glVertex3f(-1.0, 1.0, -1.0) # // Bottom Left Of The Quad (Back)
glVertex3f(1.0, 1.0, -1.0) # // Bottom Right Of The Quad (Back)
glColor3f(0.0, 0.0, 1.0) # // Set The Color To Blue
glVertex3f(-1.0, 1.0, 1.0) # // Top Right Of The Quad (Left)
glVertex3f(-1.0, 1.0, -1.0) # // Top Left Of The Quad (Left)
glVertex3f(-1.0, -1.0, -1.0) # // Bottom Left Of The Quad (Left)
glVertex3f(-1.0, -1.0, 1.0) # // Bottom Right Of The Quad (Left)
glColor3f(1.0, 0.0, 1.0) # // Set The Color To Violet
glVertex3f( 1.0, 1.0, -1.0) # // Top Right Of The Quad (Right)
glVertex3f( 1.0, 1.0, 1.0) # // Top Left Of The Quad (Right)
glVertex3f( 1.0, -1.0, 1.0) # // Bottom Left Of The Quad (Right)
glVertex3f( 1.0, -1.0, -1.0) # // Bottom Right Of The Quad (Right)
glEnd()
if __name__ == "__main__":
from sys import exit
print ("Initalizing...")
resolution = (400, 300)
pygame.init()
screen = pygame.display.set_mode(resolution, pygame.OPENGL|pygame.DOUBLEBUF)
print ("Doing GL stuff...")
glViewport(0, 0, resolution[0], resolution[1])
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
gluPerspective(45.0, float(resolution[0]) / resolution[1], 0.1, 1000.0)
glMatrixMode(GL_MODELVIEW)
glLoadIdentity()
print ("More GL stuff...")
glEnable(GL_DEPTH_TEST)
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST)
glShadeModel(GL_SMOOTH)
glClearColor(0.0, 0.0, 0.0, 0.0)
print ("Minor details...")
clock = pygame.time.Clock()
rot_tri = 0
rot_quad = 0
import random
print ("Mainloop...")
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity()
glTranslatef(-1.5, 0.0, -6.0)
glRotatef(rot_tri, 0.0, 1.0, 0.0)
pyramid()
glLoadIdentity()
glTranslate(1.5, 0.0, -6.0)
glRotatef(rot_quad, 1.0, 0.0, 0.0)
cube()
rot_tri += 2.0
rot_quad -= 1.5
pygame.display.set_caption("hello_opengl.py FPS: %i" % clock.get_fps())
pygame.display.flip()
clock.tick()