PINE LIBRARY

Vector2Array

Library "Vector2Array"
functions to handle vector2 Array operations.
.
references:
docs.unity3d.com/ScriptReference/Vector2.html
gist.github.com/winduptoy/a1aa09c3499e09edbd33
github.com/dogancoruh/Javascript-Vector2/blob/master/js/vector2.js
gist.github.com/Dalimil/3daf2a0c531d7d030deb37a7bfeff454
gist.github.com/jeantimex/7fa22744e0c45e5df770b532f696af2d
gist.github.com/volkansalma/2972237
.

from(source, prop_sep, vect_sep)
  Generate array of vector2 from string.
  Parameters:
    source: string Source string of the vectors.
    prop_sep: string Separator character of the vector properties (x`,`y).
    vect_sep: string Separator character of the vectors ((x,y)`;`(x,y)).
  Returns: array<Vector2>.

max(vectors)
  Combination of the highest elements in column of a array of vectors.
  Parameters:
    vectors: array<Vector2.Vector2>, Array of Vector2 objects.
  Returns: Vector2.Vector2, Vector2 object.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = max(array.from(a, b, c)) , plot(d.x)`

min(vectors)
  Combination of the lowest elements in column of a array of vectors.
  Parameters:
    vectors: array<Vector2.Vector2>, Array of Vector2 objects.
  Returns: Vector2.Vector2, Vector2 object.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = min(array.from(a, b, c)) , plot(d.x)`

sum(vectors)
  Total sum of all vectors.
  Parameters:
    vectors: array<Vector2.Vector2>, ID of the vector2 array.
  Returns: Vector2.Vector2, vector2 object.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = sum(array.from(a, b, c)) , plot(d.x)`

center(vectors)
  Finds the vector center of the array.
  Parameters:
    vectors: array<Vector2.Vector2>, ID of the vector2 array.
  Returns: Vector2.Vector2, vector2 object.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = center(array.from(a, b, c)) , plot(d.x)`

rotate(vectors, center, degree)
  Rotate Array vectors around origin vector by a angle.
  Parameters:
    vectors: array<Vector2.Vector2>, ID of the vector2 array.
    center: Vector2.Vector2 , Vector2 object. Center of the rotation.
    degree: float , Angle value.
  Returns: rotated points array.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = rotate(array.from(a, b, c), b, 45.0)`

scale(vectors, center, rate)
  Scale Array vectors based on a origin vector perspective.
  Parameters:
    vectors: array<Vector2.Vector2>, ID of the vector2 array.
    center: Vector2.Vector2 , Vector2 object. Origin center of the transformation.
    rate: float , Rate to apply transformation.
  Returns: rotated points array.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = scale(array.from(a, b, c), b, 1.25)`

move(vectors, center, rate)
  Move Array vectors by a rate of the distance to center position (LERP).
  Parameters:
    vectors: array<Vector2.Vector2>, ID of the vector2 array.
    center
    rate
  Returns: Moved points array.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = move(array.from(a, b, c), b, 1.25)`

to_string(id, separator)
  Reads a array of vectors into a string, of the form `[ (x, y), ... ]`.
  Parameters:
    id: array<Vector2.Vector2>, ID of the vector2 array.
    separator: string separator for cell splitting.
  Returns: string Translated complex array into string.
-> usage:
`a = Vector2.from(1.0) , b = Vector2.from(2.0), c = Vector2.from(3.0), d = to_string(array.from(a, b, c))`

to_string(id, format, separator)
  Reads a array of vectors into a string, of the form `[ (x, y), ... ]`.
  Parameters:
    id: array<Vector2.Vector2>, ID of the vector2 array.
    format: string , Format to apply transformation.
    separator: string , Separator for cell splitting.
  Returns: string Translated complex array into string.
-> usage:
`a = Vector2.from(1.234) , b = Vector2.from(2.23), c = Vector2.from(3.1234), d = to_string(array.from(a, b, c), "#.##")`
2darrayarraysdisplayfunctionlibraryMATHmethodTYPEudfvector

Pine library

In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in a publication is governed by House rules.

Disclaimer