stella v0.6.0 Vector2D
Documentation for Vector 2D
.
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
Rotate vector by angel
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
Increment one vector by another one
Examples
iex> Vector2D.add(%{x: 2, y: 2}, %{x: 2, y: 2})
%{x: 4, y: 4}
iex> Vector2D.new(-3, 3) |> Vector2D.add(%{x: 3, y: 6})
%{x: 0, y: 9}
distance(curr_vector, given_vector)
Specs
Calculate distance between vectors
Examples
iex> Vector2D.distance(%{x: 2.0, y: 2.0}, %{x: 2, y: 2.0})
0.0
iex> Vector2D.distance(%{x: -2, y: 4}, %{x: 2, y: 2.0})
4.47213595499958
divide(curr_vector, given_vector)
Specs
Divide vector by another one
Examples
iex> Vector2D.divide(%{x: 2, y: 2}, %{x: 2, y: 2})
%{x: 1.0, y: 1.0}
iex> Vector2D.new(-3, 3) |> Vector2D.divide(%{x: 2, y: 3})
%{x: -1.5, y: 1.0}
equals(curr_vector, given_vector)
Specs
Check if given vectors are equal
Examples
iex> Vector2D.equals(%{x: 2, y: 2}, %{x: 2, y: 2})
true
iex> Vector2D.equals(%{x: 2, y: 2}, %{x: 2.0, y: 2.0})
true
iex> Vector2D.equals(%{x: 2.0, y: 2.0}, %{x: 2, y: 2})
true
iex> Vector2D.equals(%{x: 2.0, y: 2.0}, %{x: 2, y: 2.0})
true
iex> Vector2D.new(-3, 3) |> Vector2D.equals(%{x: 2, y: 3})
false
length(vector)
Specs
Returns vector length
Two dimensional vector length chart
Examples
iex> Vector2D.length(%{x: 2, y: 2})
2.8284271247461903
iex> Vector2D.new(-3, 3) |> Vector2D.length()
4.242640687119285
multiply(curr_vector, given_vector)
Specs
Multiply vector by another one
Examples
iex> Vector2D.multiply(%{x: 2, y: 2}, %{x: 2, y: 2})
%{x: 4, y: 4}
iex> Vector2D.new(-3, 3) |> Vector2D.multiply(%{x: 2, y: 3})
%{x: -6, y: 9}
new(x \\ 0, y \\ 0)
Specs
Create a new two dimensional vector from given values
Examples
iex> Vector2D.new(10, 1)
%{x: 10, y: 1}
iex> Vector2D.new()
%{x: 0, y: 0}
rotate(vector, angle)
Specs
Rotate vector by angel
Examples
iex> Vector2D.rotate(%{x: 2.0, y: 2.0}, 2)
%{x: -2.650888526745648, y: 0.9863011805570786}
scale(vector, scalar)
Specs
Scale vector by given scalar
Examples
iex> Vector2D.scale(%{x: 2, y: 2}, 2)
%{x: 4, y: 4}
iex> Vector2D.new(-3, 3) |> Vector2D.scale(3)
%{x: -9, y: 9}
iex> Vector2D.new(-3, 3.12) |> Vector2D.scale(3.001)
%{x: -9.003, y: 9.36312}
sub(curr_vector, given_vector)
Specs
Decrement one vector by another one
Examples
iex> Vector2D.sub(%{x: 2, y: 2}, %{x: 2, y: 2})
%{x: 0, y: 0}
iex> Vector2D.new(-3, 3) |> Vector2D.sub(%{x: 3, y: 6})
%{x: -6, y: -3}
to_list(vector)
Specs
Convert vector from struct to list
Examples
iex> Vector2D.to_list(%{x: 1, y: 2})
[1, 2]
to_struct(vector)
Convert vector from list to struct
Examples
iex> Vector2D.to_struct([1, 2])
%{x: 1, y: 2}