stella v0.6.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)
Specs
add(%{x: number(), y: number(), z: number()}, %{ x: number(), y: number(), z: number() }) :: %{x: number(), y: number(), z: number()}
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)
Specs
distance(%{x: number(), y: number(), z: number()}, %{ x: number(), y: number(), z: number() }) :: float()
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)
Specs
divide(%{x: number(), y: number(), z: number()}, %{ x: number(), y: number(), z: number() }) :: %{x: number(), y: number(), z: number()}
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)
Specs
equals(%{x: number(), y: number(), z: number()}, %{ x: number(), y: number(), z: number() }) :: boolean()
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)
Specs
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)
Specs
multiply(%{x: number(), y: number(), z: number()}, %{ x: number(), y: number(), z: number() }) :: %{x: number(), y: number(), z: number()}
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)
Specs
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)
Specs
scale(%{x: number(), y: number(), z: number()}, float()) :: %{ x: number(), y: number(), z: number() }
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}
iex> Vector3D.new(-3, 3, 1) |> Vector3D.scale(3.08)
%{x: -9.24, y: 9.24, z: 3.08}
sub(curr_vector, given_vector)
Specs
sub(%{x: number(), y: number(), z: number()}, %{ x: number(), y: number(), z: number() }) :: %{x: number(), y: number(), z: number()}
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)
Specs
Convert vector from struct to list
Examples
iex> Vector3D.to_list(%{x: 1, y: 2, z: 3})
[1, 2, 3]
to_struct(vector)
Specs
Convert vector from list to struct
Examples
iex> Vector3D.to_struct([1, 2, 3])
%{x: 1, y: 2, z: 3}