#freeze
|[[''前の日記''>日記/20070527]]|[[''次の日記''>日記/20070601]]|
~
*20070529 3Dの親子関係 [#k36f9c3b]
**3Dモデル [#g01b93f1]
3Dモデルは以下のような親子のツリー構造になっています。~
パスファインダーはBody(本体部分=RCXと機構部),FrontWheel(前輪),RearWheel(後輪),LightSensor(光センサーと機構部)をそれぞれ独立したパーツとしました。~
2Dのときは、とても簡単なモデルだったので、頂点座標を計測して、それらを結んで多角形をつくってパスファインダーの外形にしましたが、3Dでは構造がとても複雑なので、頂点単位よりもっと大きな単位(たとえばBodyだけでも数千のポリゴンがあります。)で扱っています。~
~
#ref(3dmodel.png,nolink);
~
↑FrontWheelはLightSensorの回転と連動しますので、LightSensorの子になっています。実は逆でもよかったんですが。~
~
~
**パーツごとの動作 [#qa004a7c]
~
~
親子関係をつけた状態でパーツごとに適当に動かしてみます。~
ちゃんとそれぞれ連携して動きました。~
~
#ref(revolve.gif,nolink);
**タイヤの回転 [#g4bb135f]
~
前輪と後輪を速度から計算して回転させています。~
ここのロジックは単純で、
v=rω
v:速さ(mm)
r:タイヤの半径
ω:角速度(rad/s)
なので、
ω=v/r
より計算しています。~
#ref(rev.gif,nolink);
~
|[[''前の日記''>日記/20070527]]|[[''次の日記''>日記/20070601]]|