2021年12月 8日(水) 03:02 JST

2013年度第5回GDL講習会

  • 2013年6月11日(火) 02:45 JST
  • 投稿者:
    ゲストユーザ

第5回「立体トラス」「trussrod(傾く円柱)」

第5・6回のGDL講習会では、ディティールにこだわった立体トラスのモデリングを行っていきます。今回第5回では、その準備としてワイヤーフレームによる骨組み・部材の基本となる円柱を作成しました。どちらにおいてもベクトルの扱いがポイントとなります。

ワイヤーフレームによる骨組みについては、過去の記事(2012年度第5回GDL講習会)を参考にしてください。



骨組みの図を見ると分かるように、トラスを形作る線が傾いています。この傾きと円柱の傾きとを一致させるため、今回はベクトルを用いました。



始点sと終点fを与えたとき、円柱がその2点を結ぶようにします。そのためには始点から終点にz軸が向くよう、ローカル座標系を軸回転させる必要があります。

まずローカル座標系を始点sに合わせ、回転の基点とします(スクリプト7行目)。次にローカル座標系のz軸方向のベクトルとベクトルvの外積によって定義されるベクトルgを求めます(スクリプト8~10行目)。このベクトルgを軸として角度thetaだけ回転させると、ローカル座標は上右図の状態になり、始点と終点を結ぶように円柱を生成できます。

以下、解答例となります。

r=0.02					!円柱の半径
sx = 0 : sy = 0 : sz = 0		!始点の座標
fx = 3 : fx = 3 : fz = 4		!終点の座標

vx = fx - sx : vy = fy - sy : vz = fz – sz	!始点と終点をつなぐベクトルvの成分
len = sqr ( vx^2  + vy^2 + vz^2 )		!ベクトルvの長さ

!!!円柱を傾けるためのROT計算
ADD sx, sy, sz			!ローカル座標を始点に合わせる

gx = 0*vz - 1*vy		!Z軸とベクトルvの外積g
gy = 1*vx - 0*vz
gz = 0*vy - 0*vx

theta = ACS( vz / len )		!ローカル座標系のz軸とベクトルvのなす角

ROT gx, gy, gz, theta		!ベクトルg周りに角度thetaだけ回転

CYLIND len, r
DEL TOP

次回の講習会では骨組みに部材を配置し、リアリティのあるモデルにしていきます。ご期待ください。

以下のコメントは、その投稿者が所有するものでサイト管理者はコメントに関する責任を負いません。