PyODE 자습서 3
PyODE 자습서 3 구현
사이트 제목
Tutorial 3은 접촉 판정의 표본이다.시각화는 PyOpenGL입니다.
・PyOpenGL을 설치해야 합니다.
・OpenGL이기 때문에 3D도 있고 시각화된 코드에 대한 기술이 많습니다.
※ 필자는 C/C++에서 OpenGL을 사용한 적이 있으며, (이미 무엇을 하고 있는지 짐작이 가는데) 이 코드는 거의 읽은 적이 없습니다.탓하지 마세요.
PyOpenGL 설정
좀 부산스럽다.
・https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl
"PyOpenGL -3.1.5-cp38-cp38-win amd64.whl"에서 획득한 후 pip로 설치.
→ 튜토리얼 3 정상적인 동작.
※ pip 자동 획득부터 정상적으로 작동하지 않습니다.자세히 이쪽→PyOpenGL 설정
참고로 pyopengl과 함께'PyOpenGL accelerate'를 넣은 것 같지만 필자는 아직 설치하지 않았다.
결실
Tutorial 3이 시작되었습니다.
이미지 저장 프로그램을 추가해 GIF 애니메이션을 만들었다.(Pillow 사용)
・시점은 본가의 코드에 따라 값이 바뀌었다.
이미지 저장 프로그램
파일은 PNG 이미지 팜과 1개의 GIF 애니메이션을 내보냅니다.
추기 부분만 ↓에 실었다.
※ 원래 코드에 이미지 출력이 없기 때문에 이렇게 추가되었습니다. 잘못 본 것 같습니다.
사용 방법:
· "Pillow"를 설치합니다.
· 실행하기 전에 현재 두 개의 폴더'#'과'gif'를 만듭니다.
· 231줄의 원시 줄'glutSwapBuffers(') 다음에 추가 루틴'capture(')를 호출한다.
・ 같은 220 줄 "syst.exit(0)"이전 또는 "export movie(")
PyOpenGL에서 스냅샷 생성/저장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 )
비디오 저장 프로그램
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)
Reference
이 문제에 관하여(PyODE 자습서 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/emuai/items/840c776f146ac12ac416
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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 )
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)
Reference
이 문제에 관하여(PyODE 자습서 3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/emuai/items/840c776f146ac12ac416텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)