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
FuncVecRotは、Excel関数としても使えます。