Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Func _FVec_Addition( $vector1, $vector2 )
- Local $vector[3]
- $vector[0] = $vector1[0] + $vector2[0]
- $vector[1] = $vector1[1] + $vector2[1]
- $vector[2] = $vector1[2] + $vector2[2]
- Return $vector
- EndFunc
- Func _FVec_Subtract( $vector1, $vector2 )
- Local $vector[3]
- $vector[0] = $vector1[0] - $vector2[0]
- $vector[1] = $vector1[1] - $vector2[1]
- $vector[2] = $vector1[2] - $vector2[2]
- Return $vector
- EndFunc
- Func _FVec_Multiply( $vector1, $vector2 )
- Local $vector[3]
- $vector[0] = $vector1[0] * $vector2[0]
- $vector[1] = $vector1[1] * $vector2[1]
- $vector[2] = $vector1[2] * $vector2[2]
- Return $vector
- EndFunc
- Func _FVec_Divide( $vector1, $vector2 )
- Local $vector[3]
- $vector[0] = $vector1[0] / $vector2[0]
- $vector[1] = $vector1[1] / $vector2[1]
- $vector[2] = $vector1[2] / $vector2[2]
- Return $vector
- EndFunc
- Func _FVec_Distance( $vector1, $vector2 )
- Local $v = _FVec_Subtract($vector1, $vector2)
- Return _FVec_Length($v)
- EndFunc
- Func _FVec_CrossProduct( $vector1, $vector2 )
- If (UBound($vector1) = 2) Then
- Return ($vector1[0] * $vector2[1]) - ($vector1[1] * $vector2[0])
- ElseIf (UBound($vector1) = 3) Then
- Local $v[3]
- $v[0] = ($vector1[1] * $vector2[2]) - ($vector1[2] * $vector2[1])
- $v[1] = ($vector1[2] * $vector2[0]) - ($vector1[0] * $vector2[2])
- $v[2] = ($vector1[0] * $vector2[1]) - ($vector1[1] * $vector2[0])
- Return $v
- EndIf
- EndFunc
- Func _FVec_DotProduct( $vector1, $vector2 )
- Local $v
- $v = $vector1[0]*$vector2[0]
- $v += $vector1[1]*$vector2[1]
- $v += $vector1[2]*$vector2[2]
- Return $v
- EndFunc
- Func _FVec_Normalize( $vector1 )
- If $vector1[0] = 0 And $vector1[1] = 0 Then _
- Return 0
- Local $v[2]
- Local $length = _FVec_Length( $vector1 )
- $v[0] = $vector1[0] / $length
- $v[1] = $vector1[1] / $length
- Return $v
- EndFunc
- Func _FVec_Length( $vector1 )
- Local $v, $i
- For $i = 0 To UBound($vector1) - 1
- $v += $vector1[$i] ^ 2
- Next
- Return Sqrt($v)
- EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement