zoukankan      html  css  js  c++  java
  • Draw a line segment with PyOpenGL

    Hardware: 

      Memory: 11.7 GiB

      Processor: Intel® Core™ i5-3570 CPU @ 3.40GHz × 4 

      Graphics: Gallium 0.4 on AMD CAICOS (DRM 2.43.0, LLVM 3.8.0)

      OS type: 64-bit

    Dependencies:

      python3.5

      pygame

      PyOpenGL

    import pygame
    from pygame.locals import *
    from OpenGL.GL import *
    from OpenGL.GLU import *
    def init():
        glClearColor(1,1,1,0)
        glMatrixMode(GL_PROJECTION)
        gluOrtho2D(0,200,0,150)
    def lineSegment():
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)#create display window
        glColor3f(0,0.4,0.2)
        glBegin(GL_LINES)
        glVertex3f(180,15,0)
        glVertex3f(10,145,0)
        glEnd()
        glFlush()
    def main():
        pygame.init()
        display = (400, 300)
        pygame.display.set_mode(display, DOUBLEBUF | OPENGL)
        init()
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame.quit()
                    quit()
    
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_LEFT:
                        glTranslatef(-0.5,0,0)
                    if event.key == pygame.K_RIGHT:
                        glTranslatef(0.5,0,0)
    
                    if event.key == pygame.K_UP:
                        glTranslatef(0,1,0)
                    if event.key == pygame.K_DOWN:
                        glTranslatef(0,-1,0)
    
                if event.type == pygame.MOUSEBUTTONDOWN:
                    if event.button == 4:
                        glTranslatef(0,0,1.0)
    
                    if event.button == 5:
                        glTranslatef(0,0,-1.0)
    
            lineSegment()
            code=glGetError()
            if code!=GL_NO_ERROR:
                string=gluErrorString(code)
                print(string)
            pygame.display.flip()
            pygame.time.wait(10)
    if __name__ == '__main__':
        main()
    

    The result is as below:

  • 相关阅读:
    三维几何模板
    凸包
    计算几何 部分模板
    几何模板
    高斯消元模板
    tarjin求割点
    在无向图中找最短桥(tarjan)
    线段树
    错排问题
    NABCD分析
  • 原文地址:https://www.cnblogs.com/cxxszz/p/8056190.html
Copyright © 2011-2022 走看看