ソースからメソッドを調べる(のぶメモ)
movieモジュール
movie.rock(first=1,last=-1,angle=30,phase=0,loop=1,axis='y')
- util.mrockの実体(将来的にはutil.mrockが廃止されそう)
- 振動動画を作成する
- first : 最初のフレームNo
- last : 最後のフレームNo
- angle : 振動角(+/-)
- phase : スタートする周期(angle * sin(π * phase / 180))
- loop : 振動のずれが発生しない(エンドレス動画用;0または非0)
- axis : 中心軸
- 使用例
PyMOL> movie.rock(1,30,50,0,1,'x')
X軸を振動の中心軸として+/-50°振動させる。loopを0にすると、振動しながら少しずつ回転する。 - 検証
周期を90°とすれば、ずれないはずなのだが浮動小数点の誤差で少しずつずれる。
- pymol-1.1/modules/pymol/movie.py
nstep = (last-first)+1 if nstep<0: nstep = 1 if loop: subdiv = nstep else: subdiv = nstep+1 ang_cur = math.pi*phase/180 ang_inc = 2*math.pi/subdiv ang_cur = ang_cur - ang_inc a = 0 while a<nstep: last = angle*math.sin(ang_cur)/2 ang_cur = ang_cur + ang_inc disp = angle*math.sin(ang_cur)/2 diff = disp-last # com = "mdo %d:turn %s,%8.3f" % (first+a,axis,diff) # _self.do(com) _self.mdo("%d"%(first+a),"turn %s,%8.3f"% (axis,diff)) a = a + 1
movie.roll(first=1,last=-1,loop=1,axis='y')
- util.mrollの実体(将来的にはutil.mrollが廃止されそう)
- 回転動画を作成する
- first : 最初のフレームNo
- last : 最後のフレームNo
- loop : おそらくずれの調整(0または非0)
- axis : 中心軸
- 使用例
PyMOL> movie.roll(1,30,1,'y')
Y軸を中心として回転させる。
movie.zoom(first,last,step=1,loop=1,axis='z')
- 軸に沿ってズームする
- first : 最初のフレームNo
- last : 最後のフレームNo
- loop : 非0なら往復する。0ならずーっと進む
- axis : 沿っていく軸
- 使用例
PyMOL> movie.zoom(1,30,1,1)
Z軸に沿って進んで行く。