stella v0.4.0 Vector3D
Documentation for Vector 3D
.
Link to this section Summary
Functions
Increment one vector by another one
Calculate distance between vectors
Divide vector by another one
Check if given vectors are equal
Returns vector length
Multiply vector by another one
Create a new two dimensional vector from given values
Scale vector by given scalar
Decrement one vector by another one
Convert vector from struct to list
Convert vector from list to struct
Link to this section Functions
add(curr_vector, given_vector)
Increment one vector by another one
Examples
iex> Vector3D.add(%{x: 2, y: 2, z: 2}, %{x: 2, y: 2, z: 2})
%{x: 4, y: 4, z: 4}
iex> Vector3D.new(-3, 3, 4) |> Vector3D.add(%{x: 3, y: 6, z: 3})
%{x: 0, y: 9, z: 7}
distance(curr_vector, given_vector)
Calculate distance between vectors
Examples
iex> Vector3D.distance(%{x: 2.0, y: 2.0, z: 2.0}, %{x: 2, y: 2.0, z: 2.0})
0.0
iex> Vector3D.distance(%{x: -2, y: 4, z: 5}, %{x: 2, y: 2.0, z: 1})
6.0
divide(curr_vector, given_vector)
Divide vector by another one
Examples
iex> Vector3D.divide(%{x: 2, y: 2, z: 2}, %{x: 2, y: 2, z: 2})
%{x: 1.0, y: 1.0, z: 1.0}
iex> Vector3D.new(-3, 3, 3) |> Vector3D.divide(%{x: 2, y: 3, z: 2})
%{x: -1.5, y: 1.0, z: 1.5}
equals(curr_vector, given_vector)
Check if given vectors are equal
Examples
iex> Vector3D.equals(%{x: 2, y: 2, z: 2}, %{x: 2, y: 2, z: 2})
true
iex> Vector3D.equals(%{x: 2, y: 2, z: 2}, %{x: 2.0, y: 2.0, z: 2.0})
true
iex> Vector3D.equals(%{x: 2.0, y: 2.0, z: 2.0}, %{x: 2, y: 2, z: 2})
true
iex> Vector3D.equals(%{x: 2.0, y: 2.0, z: 2.0}, %{x: 2, y: 2.0, z: 2.0})
true
iex> Vector3D.new(-3, 3, 3) |> Vector3D.equals(%{x: 2, y: 3, z: 2})
false
length(vector)
Returns vector length
Two dimensional vector length chart
Examples
iex> Vector3D.length(%{x: 2, y: 2, z: 2})
3.4641016151377544
iex> Vector3D.new(-3, 3, 1) |> Vector3D.length()
4.358898943540674
multiply(curr_vector, given_vector)
Multiply vector by another one
Examples
iex> Vector3D.multiply(%{x: 2, y: 2, z: 2}, %{x: 2, y: 2, z: 2})
%{x: 4, y: 4, z: 4}
iex> Vector3D.new(-3, 3, 2) |> Vector3D.multiply(%{x: 2, y: 3, z: 2})
%{x: -6, y: 9, z: 4}
new(x \\ 0, y \\ 0, z \\ 0)
Create a new two dimensional vector from given values
Examples
iex> Vector3D.new(10, 1)
%{x: 10, y: 1, z: 0}
iex> Vector3D.new()
%{x: 0, y: 0, z: 0}
scale(vector, scalar)
Scale vector by given scalar
Examples
iex> Vector3D.scale(%{x: 2, y: 2, z: 2}, 2)
%{x: 4, y: 4, z: 4}
iex> Vector3D.new(-3, 3, 1) |> Vector3D.scale(3)
%{x: -9, y: 9, z: 3}
sub(curr_vector, given_vector)
Decrement one vector by another one
Examples
iex> Vector3D.sub(%{x: 2, y: 2, z: 2}, %{x: 2, y: 2, z: 2})
%{x: 0, y: 0, z: 0}
iex> Vector3D.new(-3, 3, 5) |> Vector3D.sub(%{x: 3, y: 6, z: 5})
%{x: -6, y: -3, z: 0}
to_list(vector)
Convert vector from struct to list
Examples
iex> Vector3D.to_list(%{x: 1, y: 2, z: 3})
[1, 2, 3]
to_struct(vector)
Convert vector from list to struct
Examples
iex> Vector3D.to_struct([1, 2, 3])
%{x: 1, y: 2, z: 3}