9.スケーリング/ピボッティング
12.連立方程式の解法(反復法)
ベクトル演算 | ||
---|---|---|
FuncVecDot(vec1, vec2) | ベクトルの内積 | |
FuncVecNom(vec1) | ベクトルの正規化(大きさを1にする) | |
FuncVecRot(vec1, ang, Optional ax) | ベクトルの回転 |
戻り値 | ベクトルの内積(二次配列)。 |
---|---|
vec1 vec2 |
計算対象とする二次配列。 vec1、vec2は縦ベクトル、横ベクトルのどちらでも構いません。 |
Sub test() Dim tmp As Variant Dim vec1 As Variant Dim vec2 As Variant ’セル値を配列に代入 vec1 = Range("B3:B5").Value vec2 = Range("D3:D5").Value ’ベクトルの内積 tmp = FuncVecDot(vec1, vec2) ’結果出力 Range("F3").Value = tmp End Sub
戻り値 | 正規化したベクトル(二次配列)。 |
---|---|
vec1 | 正規化対象となるベクトル(二次配列)。 |
Sub test() Dim tmp As Variant Dim vec1 As Variant ’セル値を配列に代入 vec1 = Range("B3:B5").Value ’ベクトルの内積 tmp = FuncVecNom(vec1) ’結果出力 Range("D3:D5").Value = tmp End Sub
戻り値 | 回転後のベクトル(二次配列)。 |
---|---|
vec1 |
回転対象となるベクトル(二次配列:(行,0))。 2行分のとき、平面内の回転。 3行分のとき、指定回転軸周りの回転。 |
ang | 回転角(radianで指定)。 |
ax |
回転軸の指定。 1=X軸周り、2=Y軸周り、3=Z軸周り(省略時)(省略可) |
Sub test() Dim tmp As Variant Dim vec1 As Variant Dim ang As Variant ’セル値を配列に代入 vec1 = Range("B3:B4").Value ang = Range("D4").Value ’ベクトルの回転(二次) tmp = FuncVecRot(vec1, ang) ’結果出力 Range(Cells(3, 6), Cells(3 + UBound(tmp, 1), 6 + UBound(tmp, 2))).Value = tmp End Sub
Sub test() Dim tmp As Variant Dim vec1 As Variant Dim ang As Variant Dim angFlag As Integer ’セル値を配列に代入 vec1 = Range("B3:B5").Value ang = Range("E3").Value ’ベクトルの回転軸 Select Case Range("D5").Value Case "X" angFlag = 1 Case "Y" angFlag = 2 Case Else angFlag = 3 End Select ’ベクトルの回転(三次) tmp = FuncVecRot(vec1, ang, angFlag) ’結果出力 Range(Cells(3, 7), Cells(3 + UBound(tmp, 1), 7 + UBound(tmp, 2))).Value = tmp End Sub