PyODE 자습서 1

8255 단어 PythonPyODE

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 좌표)에서 물체의 높이를 던지는 시간의 변화.

좋은 웹페이지 즐겨찾기