名称 | ・・・・・・・ |
2直線のなす角 |
|||
ルーチン名 | ・・・・・・・ |
LinesAlph |
|||
スクリプトNo | ・・・・・・・ | sub_set03- 009 | |||
file名 | ・・・・・・・ | ScriptSet03.lzh sub_set03のページからセットごとダウンロードしてください。 |
|||
概略 | ・・・・・・・ |
2つのベクトルの方向余弦(単位ベクトル)からそのベクトルのなす角を計算します。 |
|||
|
|||||
使用前提 | ・・・・・・・ |
戻り値を受け取る通常のバリアント変数を宣言して用意しておく。 |
|||
依存関係 | ・・・・・・・ |
特になし |
|||
引数説明 | ・・・・・・・ |
eVec1 |
:最初の直線の方向余弦 |
||
戻り値説明 | ・・・・・・・ |
角度がラジアンで戻ります。 通常のバリアント変数で受けてください。 |
|||
変数説明 | ・・・・・・・ |
Alpha |
計算結果の角度を一時保管する変数 |
||
注意点 | ・・・・・・・ |
直線のなす角度はπ以下とπ以上の二種類ありまうが、ここで計算される角度は常にπ以下の角度ですのでもう一方の角度が必要な時は戻り値にそれなりの計算をして下さい。 |
|||
スクリプト | |||||
'---2直線のなす角度------------------------------------- function LinesAlph(eVec1,eVec2) Dim Alpha Alpha=XShade.Acos(eVec1(0)*eVec2(0)+eVec1(1)*eVec2(1)+eVec1(2)*eVec2(2)) LinesAlph=Alpha end function |
|||||
使用例 | |||||
'2直線のなす角のテスト '描画されるのは元のベクトルだけです。 '変数はスクリプトのtest()を参照 dim Angle,eVec1,eVec2 eVec1=normVec3(vec1) if Not IsArray(eVec1) then exit sub eVec2=normVec3(vec2) if Not IsArray(eVec2) then exit sub Angle=LinesAlph(eVec1,eVec2) drawVec pos0,vec1 drawVec pos0,vec2 XShade.Message "Angle(rad)="&Angle Angle=Angle*360/(2*XShade.PI) XShade.Message "Angle(degree)="&Angle XShade.SelectParent 1 |