2017-07-05 6 views
0

Mark Newmanの計算物理を使って作業していますが、VPythonモジュールを使用した3Dモデリングの練習にはいくつか問題が発生しました。VPython(Python 3.6.1)で簡単な原子格子を構築する

私は単純なL * L格子を構築し、VPythonモジュールを使ってそれを表示しようとしています。私はPython 3.6.1を実行しています。私は、次の属性のエラーを取得

from vpython import sphere 

L = 5 # lattice size 
R = 0.3 # atom radius 

for i in range(-L,L+1): 
    for j in range(-L,L+1): 
     for k in range(-L,L+1): 
      sphere(pos=[i,j,k],radius=R) 

::私は私の問題が原因であると思われるので、本の中で

Traceback (most recent call last): 
    File "C:\Users\xxx\Desktop\python\computational physics\web resources\lattice.py", line 7, in <module> 
    sphere(pos=[i,j,k],radius=R) 
    File "C:\Users\xxx\AppData\Local\Programs\Python\Python36\lib\site-packages\vpython\vpython.py", line 1168, in __init__ 
    super(sphere, self).setup(args) 
    File "C:\Users\xxx\AppData\Local\Programs\Python\Python36\lib\site-packages\vpython\vpython.py", line 631, in setup 
    else: raise AttributeError(a+' must be a vector') 
AttributeError: pos must be a vector 

例は視覚的モジュールを使用

私のコードは次のようになります私のバージョンのPythonとVPythonの間のいくつかの互換性の問題について説明します。

コードを修正してVPythonを使って格子を表示する方法はありますか?そうでない場合は、VPythonの代替手段がありますか?

答えて

0

あなたはベクトルを作成する必要があります。 http://vpython.org/contents/docs/vector.html

まず、あなたは今、あなたはあなたの最後の行は

sphere(pos=vector(i,j,k),radius=R) 

に変更し、それがうまくいけばべき

from vpython import vector 

を経由して、それをインポートする必要があります作業!

関連する問題