PyODE 자습서 1
PyODE의 샘플 실행 예
사이트 제목의 "Tutorial 1"을 실행해 보았습니다.
・"Tutorial 2"의 실시 보도가 여기 있습니다.
・'Tutorial 3'의 실시 보도는 다음과 같다.
이'Tutorial 1'은 한 대상만 초속으로 관찰한다.
'PyODE의 동작 확인'이라는 뜻으로 작은 힌트는 표준 출력 값만 표시합니다.
이 기사에서는 Matplotlib에 드로잉 디스플레이를 추가하려고 합니다.
코드(전체)
↓ Matplotlib 드로잉을 홈 코드로 호출하고 드로잉을 정렬하여 제작
Tutorial-1_plot.py
# pyODE example 1: with MPL-plot
import ode
# Create a world object
world = ode.World()
world.setGravity( (0,-9.81,0) )
# Create a body inside the world
body = ode.Body(world)
M = ode.Mass()
M.setSphere(2500.0, 0.05)
M.mass = 1.0
body.setMass(M)
body.setPosition( (0,2,0) )
body.addForce( (0,200,0) )
# Do the simulation...
total_time = 0.0
dt = 0.04
import numpy as np
nt = 100
txyzuvw = np.zeros( (7,nt+1) )
tn=0
while total_time<2.0:
x,y,z = body.getPosition()
u,v,w = body.getLinearVel()
print( "%1.2fsec: pos=(%6.3f, %6.3f, %6.3f) vel=(%6.3f, %6.3f, %6.3f)" % \
(total_time, x, y, z, u,v,w) )
if tn <= nt:
txyzuvw[0][tn]=total_time
txyzuvw[1][tn]=x
txyzuvw[2][tn]=y
txyzuvw[3][tn]=z
#txyzuvw[4][tn]=u
#txyzuvw[5][tn]=v
#txyzuvw[6][tn]=w
world.step(dt)
total_time+=dt
tn += 1
end_tn = tn
import matplotlib.pyplot as plt
# MPL-Plot
plt.plot( txyzuvw[0][0:end_tn], txyzuvw[2][0:end_tn], label='Vertical position')
plt.xlabel('time [s]')
plt.ylabel('Vertical position [m]')
plt.savefig('./y.png')
↑ 20200506: 수정은 시작 위치를 기록할 수 없습니다결실
numby와 matplotlib을 미리 설치하십시오.
집행 후...
↑ 이 그래프 이미지(PNG)는 현재 저장됩니다.
수직 방향(Y 좌표)에서 물체의 높이를 던지는 시간의 변화.
Reference
이 문제에 관하여(PyODE 자습서 1), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/emuai/items/75df831c16dbe660df68텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)