[PYTHON] Tutoriel PyODE 3

Le tutoriel 3 de la famille de têtes PyODE a été réalisé

Site Honke PyODE

"Tutorial 3" est un exemple de jugement de contact. La visualisation est PyOpenGL. -La configuration de PyOpenGL est requise. -Comme il s'agit d'OpenGL, il existe de nombreuses descriptions de code de visualisation car il s'agit de 3D.

Configuration de PyOpenGL

C'était un peu difficile. ・ Https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl J'ai obtenu "PyOpenGL-3.1.5-cp38-cp38-win_amd64.whl" et l'ai installé avec pip. → Le didacticiel 3 fonctionne normalement.

résultat

"Tutorial 3" a déménagé. J'ai ajouté une routine d'enregistrement d'image pour créer un film GIF. (Utilisez un oreiller) tutorial3.gif

・ La valeur du point de vue a été modifiée par rapport au code d'origine.

Routine de stockage d'images

Produit un groupe d'images PNG et une vidéo GIF sous forme de fichier. Seule la pièce supplémentaire sera placée sur ↓.

Comment utiliser: -Installez "Oreiller". -Créer deux dossiers courants "img" et "gif" à l'avance avant l'exécution. -Appeler la routine supplémentaire "capture ()" après la ligne d'origine 231 "glutSwapBuffers ()". ・ De même, ligne 220, appelez "export_movie ()" devant "sys.exit (0)"

Générer un instantané à partir de PyOpenGL/sauvegarder


from PIL import Image
from PIL import ImageOps

step=-1
intvl = 10
imgs = []
def capture():
  global step
  step += 1

  if step % intvl != 0:
      return

  pad_step = '{0:04d}'.format(step)
  print( pad_step )
  savepath = "img/tutorial3_"+pad_step+".png "
 
  width = glutGet(GLUT_WINDOW_WIDTH)
  height = glutGet(GLUT_WINDOW_HEIGHT)
 
  glReadBuffer(GL_FRONT)
  glPixelStorei(GL_UNPACK_ALIGNMENT, 1)
  data = glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE)
 
  #image = Image.fromstring("RGBA", (width, height), data)
  image = Image.frombytes("RGBA", (width, height), data)
  image = ImageOps.flip(image)
  image.save( savepath )
  imgs.append( image )

Routine d'enregistrement de vidéo GIF



def export_movie():
    if not imgs:
        return
    imgs[0].save('gif/tutorial3.gif'
               , save_all=True
               , append_images=imgs[1:]
               , optimize=False
               , duration=100 #40
               , loop=0)

Recommended Posts

Tutoriel PyODE 2
Tutoriel PyODE 1
Tutoriel PyODE 3
Tutoriel Python
Tutoriel du didacticiel TensorFlow
Tutoriel Quantopian LESSON 10
Tutoriel RabbitMQ 5 (sujet)
Tutoriel Quantopian LEÇON 8
Tutoriel Quantopian LESSON 6
Tutoriel Python Django (5)
Tutoriel Python Django (2)
Résumé du didacticiel Python
Tutoriel RabbitMQ 6 (RPC)
mémo du didacticiel django
Addendum au didacticiel Ryu
Tutoriel Python Django (8)
Tutoriel Python Django (6)
Démarrer le didacticiel Django 1
Tutoriel Quantopian LEÇON 9
Tutoriel Quantopian LESSON 5
Tutoriel Quantopian LESSON 3
Tutoriel Quantopian LESSON 7
Tutoriel gRPC de 5 minutes
Tutoriel Python Django (7)
Tutoriel Python Django (1)
Tutoriel Quantopian LEÇON 4
Tutoriel du didacticiel Python Django
Essayez d'utiliser PyODE
Tutoriel Quantopian LEÇON 11
Tutoriel Python Django (3)
Tutoriel RabbitMQ 4 (Routage)
Tutoriel pour débutants en tyrolienne
[Français] tutoriel hyperopt
Tutoriel Python Django (4)