sub_set01へ戻る

名称 ・・・・・・・

tに関する座標値,微分,2階微分の計算

ルーチン名 ・・・・・・・

tBibun

スクリプトNo ・・・・・・・ sub_set01- 010
file名 ・・・・・・・ ScriptSet01.lzh
sub_set01のページからセットごとダウンロードしてください。
概略 ・・・・・・・

与えられた階差とtパラメータ値からtパラメータ地点における座標値,微分値,2階微分値を求める。

使用前提 ・・・・・・・

kaisa(sub_set-016)を使って前もって階差を取得しておく。
呼び出し側で、計算結果を受ける引数(Pos,dPos,ddPos)に対応する変数を用意(宣言)しておく。

依存関係 ・・・・・・・

直接の依存は無い

間接的にはkaisa(sub_set-016)と併用することになる。

引数説明 ・・・・・・・

XYZ0〜XYZ3
ta
Pos
dPos
ddPos

(in)階差 [1次元、3要素の配列]
(in)指定するtパラメータ(0〜1)
(out)ベジェ曲線のt地点の座標値 [1次元、3要素の配列]
(out)Posの微分(tで微分) [1次元、3要素の配列]
(out)Posの2階微分(tで微分) [1次元、3要素の配列]

戻り値説明 ・・・・・・・

無し

変数説明 ・・・・・・・

j

カウンタ用変数(xyz)

注意点 ・・・・・・・

引数で入力・出力を行うので間違わないように注意が必要。
より明確にしたいならば(in)をvalに(out)をrefに指定してください。

 
スクリプト
'-----------座標値,微分,二階微分の計算
Sub tBibun(XYZ0,XYZ1,XYZ2,XYZ3,ta,Pos,dPos,ddPos)
'階差とtパラメータ(=ta)から座標値,微分,二階微分を求める。
'戻値---無し
'引数---
' XYZ0   :(in)P0座標値(1次元、3要素の配列)
' XYZ1   :(in)第一段階差(1次元、3要素の配列)
' XYZ2   :(in)第二段階差(1次元、3要素の配列)
' XYZ3   :(in)第三段階差(1次元、3要素の配列)
' ta     :(in)求めたいtパラメータ
' Pos    :(out)tでのxyz座標値
' dPos   :(out)tでの微分値
' ddPos  :(out)tでの二階微分値

  Dim j   ':カウンタ用変数(xyz)

  'XYZ座標、一階微分、二階微分
  For j = 0 To 2
    Pos(j) = XYZ3(j)*ta^3+3*XYZ2(j)*ta^2+3*XYZ1(j)*ta+XYZ0(j)
    dPos(j) = 3*(XYZ3(j)*ta^2+2*XYZ2(j)*ta+XYZ1(j))
    ddPos(j) = 6*(XYZ3(j)*ta+XYZ2(j))
  Next
End Sub
使用例
主サブルーチンの例題を参照してください。

sub_set01へ戻る