Zombinyuszi

Semmitmondó üres fecsegéseim zenei kísérettel.

PH!

Nincs megjeleníthető elem

Címkék

16bit (1) 190e 2.5evo2 (1) 2.2 (1) adatlap (1) ady endre (1) agyrohasztás (1) ajtó (1) alizée (1) alkonyat (1) álom (2) amerika (3) amy macdonald (1) android (3) apache myqsl php (1) aranka (1) archlord (1) arcszörzet (1) arduino (1) art (1) atlétika (1) ausztrália (1) autó (2) a halhatatlanság halála (2) baggins (1) ballad (1) barkács (1) bëlga (1) bilbo (1) bitchslap (2) blade (4) blog (1) blümchen (1) boinc (1) boohbah (1) boomerang (1) boondock saints (1) borzongás (3) bullshit (1) busters (1) b movie (1) chase (1) cigánybűnözés (1) co2 (1) csacsi (1) csaj (6) dance (1) dark (1) depeche mode (1) dinnye (1) dissection (1) dna (1) dohány (1) drót (1) ebm (1) egér (3) eger (1) energia hatékonyság (1) enjoy the ride (1) enter shikari (1) erepublik (1) erepublik.com (1) étel (1) ewan dobson (1) ex (1) fart (1) fengshui (1) film (2) filmek (1) fing (1) fizika (1) flash (2) fof (1) fókusz (1) fox (1) frets on fire (1) futás (2) futópad (1) g25 (2) games (2) gerjedelem (1) gitár (1) guitar (1) gyakorlat (5) hardstyle (1) hd4200 (1) heavy metal (2) héja nász az avaron (1) helyesírás (1) hétfő (2) hévíz (1) hocico (1) hőcserélő (1) hőszivattyú (1) hot n cold (1) hp (1) huawei u8500 (1) hw enabled (1) idézet (1) indavideo (5) intel (1) in my dreams (1) isaac asimov (2) iskola (5) it (1) iwiw (1) játék (3) jet harris (1) (26) joan osborne (1) jóslat (1) kapoeria (1) kate perry (1) kavinsky (1) kedd (1) kéne (1) kenguru (1) kép (4) kép nézegető (1) kerguelen szigetek (1) kerképár (10) kert (1) keszthely (1) kevin federline (1) kilábalás (1) kocsma (1) koffein (1) kóka (1) környezetvédelem (1) lamináris áramlás (1) linkin park (1) linux (1) little people (1) logitech (5) london (1) mai gyerekek (3) mamma mia (1) mathurl (1) mercedes benz (1) metán (1) metanol (1) meteora (1) mexiko (1) minipop (1) mmorpg (1) moonlight (1) morcheeba (1) mulatós (1) must have (1) myth (1) neil duerden (1) nitrogén (1) noemi (1) not emo (1) nyaralás (1) nyomtató (1) off planet films (1) oláh györgy (1) olaszország (1) one of us (1) opengl (1) orr mosás (1) paris hilton (1) parry gripp (1) paul kalkbrenner (1) pengecsajok (1) péntek (2) pieces (1) pinhole (1) pipa (1) plan b (1) poker (1) post rock (1) privi.hu (2) program (1) project (3) push the button (1) py (1) pyopengl (1) python (2) qwop (1) rendőr (1) rengeteg (1) robbanás (1) roller (1) romy schneider (1) russian circles (1) samantha (1) scatman (1) scene (1) senses (1) shadow (1) shesha (1) sisa (1) slinkachu (1) (1) south park (1) splitter (1) spock (1) stackless (1) status (1) stereo (1) stirling (1) sugarbabes (1) szarvasmarha (1) szerelem (3) szerelés (1) szifiliszes szfinx (1) szin (1) szinesceruzák (1) szórakozás (1) tánc (2) tankcsapda (2) taser (1) techno (2) telefon (2) tengely (1) terror (1) testarossa nightdrive (1) testvérbosszú (1) teveszar (1) thirteen (1) thy catafalque (2) totalcar (1) trololo (1) twilight (1) ubuntu (1) ups (1) urban (1) vajda (1) vasárnap (1) videó (1) világvége (1) villanyautó (1) vizipipa (1) warlord (1) wcg (1) web (3) whack (1) wifi (1) winkler (1) wrong (1) wxpython (1) xnview (1) youtube (32) zene (20) zlad (1) zöld tea (1) zte (3) Címkefelhő

pyopengl

2010.01.08. 22:08 cyanide

http://www.lighthouse3d.com/opengl/displaylists/

Ennek a tutorialnak a forrását átírtam C++-ból, pythonba. Van benne egy kis "benchmark", ami azt mutatta, hogy ugyan olyan gyorsan fut a pythonos változat, mint a forgatott exe. Jó dolog ez a display list dolog, átemelem a főprogramba. A tárgy mozgatását imitálni fogom a kamera mozgatásával.

http://www.wxpython.org/docs/api/wx.PaintDC-class.html

NetBeans átvert, megjelölt egy változót, hogy felesleges és kiszedtem gondolkodás nélkül. Majd jöttek a bugok, persze nem kapcsoltam össze, mert közben elhanyagoltam az egész projectet. Ma kicsit átnéztem és megtaláltam a hibát. Visszaraktam azt a változót és egyből jó lett. Még annyi hiba van, hogy a resize event kb lenullázza a tárgyam állapotát.Például elforgatom 30 fokkal,húzok az ablakon a tárgy visszaugrik a 0 forgatáshoz. Valahogy konkzekvensebben kéne kezelnem az állapotait, lehetőleg globális változók nélkül.

Nem vacakolok feltöltéssel, itt a kód:

 

## -----------------------------------

## Version: Hierarchical Display lists

## Antonio Ramires Fernandes

## www.lighthouse3d.com

## -----------------------------------

 

from OpenGL.GL import *

from OpenGL.GLU import *

from OpenGL.GLUT import *

 

from math import *

 

angle = 0.0

x, y, z = 0.0, 1.75, 5

lx, ly, lz = 0.0, 0.0, -1.0

ratio = 1.0

frame, time, timebase = 0, 0, 0

 

def changeSize(w, h):

    ## Prevent a divide by zero, when window is too short

    ## (you cant make a window of zero width).

    if(h == 0):

        h = 1

    ratio = 1.0 * w / h

    ## Reset the coordinate system before modifying

    glMatrixMode(GL_PROJECTION)

    glLoadIdentity()

    ## Set the viewport to be the entire window

    glViewport(0, 0, w, h)

    ## Set the clipping volume

    gluPerspective(45,ratio,1,1000)

    glMatrixMode(GL_MODELVIEW)

    glLoadIdentity()

    global x, y, z, lx, ly, lz

    gluLookAt(x, y, z,

              x + lx, y + ly, z + lz,

              0.0, 1.0 ,0.0)

 

def createDL():

    ##GLuint snowManDL,loopDL

    snowManDL = glGenLists(1)

    loopDL = glGenLists(1)

    glNewList(snowManDL,GL_COMPILE)

    drawSnowMan()

    glEndList()

    glNewList(loopDL, GL_COMPILE)

    for i in xrange(-3, 3):

        for j in xrange(-3, 3):

            glPushMatrix()

            glTranslatef(i*10.0, 0, j * 10.0)

            glCallList(snowManDL)

            glPopMatrix()

    glEndList()

    return loopDL

 

def initScene():

    glEnable(GL_DEPTH_TEST)

    global DLid

    DLid = createDL()

 

def drawSnowMan():

    glColor3f(1.0, 1.0, 1.0)

    ##Draw Body

    glTranslatef(0.0 ,0.75, 0.0)

    glutSolidSphere(0.75, 20, 20)

    ## Draw Head

    glTranslatef(0.0, 1.0, 0.0)

    glutSolidSphere(0.25, 20, 20)

    ## Draw Eyes

    glPushMatrix()

    glColor3f(0.0, 0.0, 0.0);

    glTranslatef(0.05, 0.10, 0.18);

    glutSolidSphere(0.05, 10, 10);

    glTranslatef(-0.1, 0.0, 0.0);

    glutSolidSphere(0.05, 10, 10);

    glPopMatrix();

    ## Draw Nose

    glColor3f(1.0, 0.5, 0.5)

    glRotatef(0.0,1.0, 0.0, 0.0)

    glutSolidCone(0.08, 0.5, 10,2)

 

def renderScene():

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)

    ## Draw ground

    glColor3f(0.9, 0.9, 0.9)

    glBegin(GL_QUADS)

    glVertex3f(-100.0, 0.0, -100.0)

    glVertex3f(-100.0, 0.0,  100.0)

    glVertex3f( 100.0, 0.0,  100.0)

    glVertex3f( 100.0, 0.0, -100.0)

    glEnd()

    ## Draw 36 SnowMen

    glCallList(DLid)

    

    global frame, timebase, time

    frame = frame + 1

    time = glutGet(GLUT_ELAPSED_TIME)

    if (time-timebase > 1000):

        glutSetWindowTitle( str( frame * 1000.0 / (time - timebase) ))

        timebase = time

        frame = 0    

    glutSwapBuffers()

 

def orientMe(ang):

    global x, y, z, lx, ly, lz

    lx = sin(ang)

    lz = -cos(ang)

    glLoadIdentity()

    gluLookAt(x, y, z,

              x + lx, y + ly, z + lz,

              0.0, 1.0, 0.0)

 

 

def moveMeFlat(i):

    global x, y, z, lx, ly, lz

    x = x + i*(lx)*0.1

    z = z + i*(lz)*0.1

    glLoadIdentity()

    gluLookAt(x, y, z,

              x + lx, y + ly, z + lz,

              0.0, 1.0, 0.0)

 

def inputKey(c, x, y):

    global angle

    if c == 'a':        

        angle = angle - 0.01

        orientMe(angle)      

    if c == 's':        

        angle = angle + 0.01

        orientMe(angle)

    if c == 't':

        moveMeFlat(1)        

    if c =='g':

        moveMeFlat(-1)

 

def main():

    glutInit()

    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA)

    glutInitWindowPosition(100,100)

    glutInitWindowSize(300,300)

    glutCreateWindow("SnowMen")

    initScene()

    glutKeyboardFunc(inputKey)

    glutDisplayFunc(renderScene)

    glutIdleFunc(renderScene)

    glutReshapeFunc(changeSize)

    

if __name__ == '__main__':

    main()

    glutMainLoop()

 

 

    

 

 

 


Szólj hozzá!

Címkék: python project py opengl pyopengl wxpython

A bejegyzés trackback címe:

https://zombinyuszi.blog.hu/api/trackback/id/tr711657859

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása