名称 | ・・・・・・・ |
2点から方向余弦(単位ベクトル)を計算 |
|||
ルーチン名 | ・・・・・・・ |
GetEVec |
|||
スクリプトNo | ・・・・・・・ | sub_set03- 007 | |||
file名 | ・・・・・・・ | ScriptSet03.lzh sub_set03のページからセットごとダウンロードしてください。 |
|||
概略 | ・・・・・・・ |
2つの位置ベクトルの示す点を結ぶベクトルの方向余弦を計算する。 |
|||
|
|||||
使用前提 | ・・・・・・・ |
引数を通して計算結果が返るのでeVecは配列で宣言して用意しておく。[vec(2)形式] |
|||
依存関係 | ・・・・・・・ |
特になし |
|||
引数説明 | ・・・・・・・ |
pos1 |
:最初の座標の位置ベクトル[vec(2)形式] |
||
戻り値説明 | ・・・・・・・ |
計算が成功(true)したか失敗(false)したかが返される。pos1,pos2が同じ時失敗する。 |
|||
変数説明 | ・・・・・・・ |
D |
:計算用一時記憶変数 |
||
注意点 | ・・・・・・・ |
計算結果は引数を介して返るので間違わないで下さい。 |
|||
スクリプト | |||||
'---与えられた2点の座標データから単位ベクトルを計算する function GetEVec(pos1,pos2,eVec) dim D,delta(2),j D=0 for j=0 to 2 delta(j)=pos2(j)-pos1(j) D=D+delta(j)^2 next if D=0.0 then GetEVec=false Exit Function end if D=D^(1/2) for j=0 to 2 eVec(j)=delta(j)/D next GetEVec=true end function |
|||||
使用例 | |||||
'2点の単位ベクトルのテスト '(注)単位ベクトルは非常に小さいので拡大してみてください。 '変数はスクリプトのtest()を参照 dim VecResult(2) if GetEVec(pos1,pos2,vecResult) then for j=0 to 2 XShade.Message"j="&j&" ans="&vecResult(j) next drawPos pos1 drawPos pos2 drawVec pos1,subVec3(pos2,pos1) XShade.ObjectName="2点指定ベクトル" drawVec pos0,vecResult ColorSet Red XShade.ObjectName="単位ベクトル" else XShade.Message"pos1とpos2は同位置です。" end if XShade.SelectParent 1 |