arrow オブジェクト

arrow オブジェクトは真直ぐな box の形のシャフトと、その最後に矢尻が付いた形をしています。次の命令文は x 軸に平行な arrow を表示します

pointer = arrow(pos=(0,2,1), axis=(5,0,0), shaftwidth=1)

arror オブジェクトは、cylinder の時と同様に、以下の属性とデフォルト値を持ちます:pos (0,0,0), x (0), y(0), z(0), axis (1,0,0), length (1), color (1,1,1) (color.white でも指定できます), red (1), green (1), blue (1), and up (0,1,0). arrow オブジェクトの up 属性は顕著に利きます。そのシャフトや鏃は四角い断面を持つからです。 up 属性を設定すると、arrow の軸に対して回転が発生します。さらに下の属性があります。

shaftwidth:シャフト幅:デフォルトで shaftwidth = 0.1*(length of arrow)

headwidth:ヘッド幅:デフォルトで, headwidth = 2*shaftwidth

headlength:ヘッド長さ:デフォルトで headlength = 3*shaftwidth

これらの属性を 0 に設定すると、VPython は arrow のサイズをデフォルトに基づいて決めていきます。もし headlength が arrow の長さの半分より大きくなるかシャフトが長さの 1/50 より小さくなると、arrow の倍率比が固定されます。

このデフォルト動作により、短い arrow の幅は狭くなり、長い arrow の幅は広くなります(全体の長さの表示は正しく保たれます)。 もし arrow の長さが変化してもシャフトとヘッドの幅を不変にしたいときは fixedwidth = 1とします。 このときの調整できるのは headlength だけです。 その長さは全体の長さの半分までに制限されます。全体の長さは正しく調査背されます。これは arrow が非常に短いとき、頭が平たい画鋲のように見えることを意味します。

注意:cylinder, arrow, cone, pyramid に対する pos 属性は端面で決まります。一方で box, sphere, or ring に対する位置属性は中心に対して決まります。