visual python
- это простой пакет для создания 3-мерных сцен, в том числе динамических (3D кино). Если программа выполняется в jupyter
notebook
, то сцена показывается в нём же; если нет - запускается браузер (или открывается новая вкладка, если он уже запущен) и сцена показывается в отдельной вкладке браузера.
from vpython import *
Создадим нескоько 3-мерных объектов.
b=box(pos=vec(0,-2,0),size=vec(4,0.5,2))
s=sphere(pos=vec(0,0,0),radius=0.5)
cl=cylinder(pos=vec(2,0,0),axis=vec(0,1,0),radius=0.5)
cn=cone(pos=vec(-2,0,0),axis=vec(0,1,0),radius=0.5)
Можно менять положение объектов,
s.pos=vec(0,-1,0)
cl.pos.y=2
cn.pos.x=-1
их цвет,
s.color=vec(0.8,0,0.8)
cl.color=color.green
cn.color=color.blue
материал, из которого они сделаны
b.texture=textures.wood
s.texture=textures.metal
Удалим 2 объекта.
cl.visible=False
del cl
cn.visible=False
del cn
Теперь пусть шарик прыгает. Максимальная высота центра шарика ymax
, минимальная ymin
, время меняется от $-1$ до 1.
ymax=4
ymin=b.pos.y+0.5*b.size.y+s.radius
def y(t):
return ymax-(ymax-ymin)*t**2
N=200
dt=1/N
s.pos.y=ymin
for n in range(10):
for k in range(2*N):
t=-1+k*dt
rate(100)
s.pos.y=y(t)
rate(100)
означает показывать 100 кадров в секунду (или меньше, если программа не успевает с вычислениями).