Libraries.Compute.Vector2 Documentation
Vector2 is a class representing a vector in 2D space.
Example Code
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(2.0, 3.0)
number dotProduct = firstVector:DotProduct(secondVector)
output "The dot product is: " + dotProduct
Inherits from: Libraries.Language.Object
Actions Documentation
Add(number xValue, number yValue)
This action adds the vector with the passed x and y components to the calling vector. This changes the calling vector to the result of the addition.
Parameters
- number xValue: The x component of the vector to add
- number yValue: The y component of the vector to add
Return
Libraries.Compute.Vector2: The calling vector after addition
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(4.3, 8.1)
vector:Add(3.3, 9.2)
number newX = vector:GetX()
number newY = vector:GetY()
output "The new vector is: [" + newX + ", " + newY + "]"
Add(Libraries.Compute.Vector2 vector)
This action adds the passed vector to the calling vector. This action changes the calling vector to the result of the addition.
Parameters
Return
Libraries.Compute.Vector2: The calling vector after addition
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.2, 5.5)
secondVector:Set(8.3, 4.2)
firstVector:Add(secondVector)
number newX = firstVector:GetX()
number newY = firstVector:GetY()
output "The new vector is: [" + newX + ", " + newY + "]"
Angle()
This action computes the angle in degrees of the vector relative to the positive x-axis.
Return
number: The angle of the vector relative to the x-axis (in degrees)
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(1.0, 1.0)
number angle = vector:Angle()
output "The angle in degrees of the vector is: " + angle
Angle(Libraries.Compute.Vector2 vector)
This action computes the angle in degrees between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
number: The angle between the two vectors (in degrees)
Example
use Libraries.Compute.Vector2
use Libraries.Compute.Math
Math math
Vector2 firstVector
Vector2 secondVector
firstVector:Set(0.5, math:SquareRoot(3) / 2)
secondVector:Set(math:SquareRoot(2) / 2, math:SquareRoot(2) / 2)
number angle = firstVector:Angle(secondVector)
output "The angle in degrees between the vectors is: " + angle
AngleInRadians(Libraries.Compute.Vector2 vector)
This action computes the angle in radians between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
number: The angle between the two vectors (in radians)
Example
use Libraries.Compute.Vector2
use Libraries.Compute.Math
Math math
Vector2 firstVector
Vector2 secondVector
firstVector:Set(0.5, math:SquareRoot(3) / 2)
secondVector:Set(math:SquareRoot(2) / 2, math:SquareRoot(2) / 2)
number angle = firstVector:AngleInRadians(secondVector)
output "The angle in radians between the vectors is: " + angle
AngleInRadians()
This action computes the angle in radians of the vector relative to the positive x-axis.
Return
number: The angle of the vector relative to the x-axis (in radians)
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(1.0, 1.0)
number angle = vector:AngleInRadians()
output "The angle in radians of the vector is: " + angle
Clamp(number min, number max)
This action clamps the length of the vector to be between the passed minimum and maximum values. This changes the vector if the length of the vector is greater than the maximum or less than the minimum.
Parameters
- number min: The minimum length
- number max: The maximum length
Return
Libraries.Compute.Vector2: The vector with a new length if the old length was below the minimum or above the maximum
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(3.0, 4.0)
vector:Clamp(0.5, 1.5)
number newX = vector:GetX()
number newY = vector:GetY()
output "The new vector is: [" + newX + ", " + newY + "]"
Compare(Libraries.Language.Object object)
This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.
Parameters
- Libraries.Language.Object: The object to compare to.
Return
integer: The Compare result, Smaller, Equal, or Larger.
Example
Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)
Copy()
This action returns a copy of the current vector. The new vector's x and y components are the same as the calling vector's x and y components.
Return
Libraries.Compute.Vector2: a new vector that is a copy of the calling vector
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(4.8, 3.2)
Vector2 copyVector
copyVector = vector:Copy()
number newX = copyVector:GetX()
number newY = copyVector:GetY()
output "The new vector is: [" + newX + ", " + newY + "]"
CrossProduct(number xValue, number yValue)
This action computes the 2D cross product of the calling vector and the vector represented by the passed x and y components. This action is mainly necessary for game graphics.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
Return
number: The 2D cross product of the vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(4.0, 2.0)
number crossProduct = vector:CrossProduct(10.0, 3.0)
output "The 2D cross product is: " + crossProduct
CrossProduct(Libraries.Compute.Vector2 vector)
This action computes the 2D cross product of the calling vector and the passed vector. This action is mainly necessary for game graphics.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
number: The 2D cross product of the vectors
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(4.0, 2.0)
secondVector:Set(8.0, 8.0)
number crossProduct = firstVector:CrossProduct(secondVector)
output "The 2D cross product is: " + crossProduct
Distance(number xValue, number yValue)
This action computes the distance between the calling vector and the vector represented by the passed x and y components.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
Return
number: The distance between the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(3.0, 7.0)
number distance = vector:Distance(7.0, 8.0)
output "The distance is " + distance
Distance(Libraries.Compute.Vector2 vector)
This action computes the distance between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
number: The distance between the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
Vector2 otherVector
vector:Set(4.0, 9.0)
otherVector:Set(3.0, 7.0)
number distance = vector:Distance(otherVector)
output "The distance is " + distance
Distance(number x1, number y1, number x2, number y2)
This action computes the distance between the vectors represented by the passed x and y components.
Parameters
- number x1: The x component of the first vector
- number y1: The y component of the first vector
- number x2: The x component of the second vector
- number y2: The y component of the second vector
Return
number: The distance between the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
number distance = vector:Distance(2.0, 3.0, 5.0, 1.0)
output "The distance is " + distance
DistanceSquared(number x1, number y1, number x2, number y2)
This action computes the square of the distance between the vectors represented by the passed x and y components.
Parameters
- number x1: The x component of the first vector
- number y1: The y component of the first vector
- number x2: The x component of the second vector
- number y2: The y component of the second vector
Return
number: The square of the distance between the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
number distanceSquared = vector:DistanceSquared(2.0, 3.0, 5.0, 1.0)
output "The square of the distance is " + distanceSquared
DistanceSquared(Libraries.Compute.Vector2 vector)
This action computes the square of the distance between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
number: The square of the distance between the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
Vector2 otherVector
vector:Set(4.0, 9.0)
otherVector:Set(3.0, 7.0)
number distanceSquared = vector:DistanceSquared(otherVector)
output "The square of the distance is " + distanceSquared
DistanceSquared(number xValue, number yValue)
This action computes the square of the distance between the calling vector and the vector represented by the passed x and y components.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
Return
number: The square of the distance between the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(3.0, 7.0)
number distanceSquared = vector:DistanceSquared(7.0, 8.0)
output "The square of the distance is " + distanceSquared
DotProduct(number x1, number y1, number x2, number y2)
This action computes the dot product of the two vectors given by the passed x and y components.
Parameters
- number x1: The x component of the first vector
- number y1: The y component of the first vector
- number x2: The x component of the second vector
- number y2: The y component of the second vector
Return
number: The dot product of the two vectors.
Example
use Libraries.Compute.Vector2
Vector2 vector
number dotProduct = vector:DotProduct(3.0, 4.0, 5.0, 6.0)
output "The dot product is " + dotProduct
DotProduct(Libraries.Compute.Vector2 vector)
This action computes the dot product between the calling vector and the passed vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
number: The dot product of the two vectors
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(5.0, 6.0)
number dotProduct = firstVector:DotProduct(secondVector)
output "The dot product is " + dotProduct
DotProduct(number xValue, number yValue)
This action computes the dot product between the calling vector and the vector with the passed x and y components.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
Return
number: The dot product of the two vectors
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(3.0, 4.0)
number dotProduct = vector:DotProduct(4.0, 5.0)
output "The dot product is " + dotProduct
Equals(Libraries.Language.Object object)
This action determines if two objects are equal based on their hash code values.
Parameters
- Libraries.Language.Object: The to be compared.
Return
boolean: True if the hash codes are equal and false if they are not equal.
Example
use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)
EqualsAtPrecision(number xValue, number yValue, number precision)
This action determines whether the vector represented by the passed x and y components equals the calling vector to within the passed precision.
Parameters
- number xValue: The x component of the other vector
- number yValue: The y component of the other vector
- number precision: The desired precision
Return
boolean: true if the vectors are equal within the passed precision, false otherwise
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(3.0, 4.0)
boolean areEqual = vector:EqualsAtPrecision(3.0, 4.0000001, 0.00001)
if areEqual
output "The two vectors are equal."
else
output "The two vectors are not equal."
end
EqualsAtPrecision(Libraries.Compute.Vector2 vector, number precision)
This action determines whether the passed vector equals the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector2: The other vector
- number precision: The desired precision
Return
boolean: true if the vectors are equal within the passed precision, false otherwise
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(6.0, 8.0)
secondVector:Scale(0.5)
boolean areEqual = firstVector:EqualsAtPrecision(secondVector, 0.00001)
if areEqual
output "The two vectors are equal."
else
output "The two vectors are not equal."
end
GetHashCode()
This action gets the hash code for an object.
Return
integer: The integer hash code of the object.
Example
Object o
integer hash = o:GetHashCode()
GetX()
This action returns the current x component of the vector.
Return
number: the x component of the vector
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(4.0, 3.0)
number x = vector:GetX()
output "The x component is " + x
GetY()
This action returns the current y component of the vector.
Return
number: the y component of the vector
Example
use Libraries.Compute.Vector2
Vector2 vector
vector:Set(4.0, 3.0)
number y = vector:GetY()
output "The y component is " + y
HasOppositeDirection(Libraries.Compute.Vector2 vector)
This action determines whether the passed vector has the opposite direction as the calling vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
boolean: true if the two vectors have the opposite direction, false otherwise
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(-3.0, -4.0)
boolean isOpposite = firstVector:HasOppositeDirection(secondVector)
if isOpposite
output "The two vectors have opposite directions."
else
output "The two vectors do not have opposite directions."
end
HasSameDirection(Libraries.Compute.Vector2 vector)
This action determines whether the passed vector has the same direction as the calling vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
boolean: true if the two vectors have the same direction, false otherwise
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(6.0, 8.0)
boolean isSame = firstVector:HasSameDirection(secondVector)
if isSame
output "The two vectors have the same direction."
else
output "The two vectors do not have the same direction."
end
IsCollinear(Libraries.Compute.Vector2 other)
This action determines whether the passed vector is collinear with the calling vector, meaning that it lies on the same line as the calling vector and has the same direction as the calling vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
boolean: true if the vectors are collinear, false otherwise.
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(6.0, 8.0)
boolean collinear = firstVector:IsCollinear(secondVector)
if collinear
output "The two vectors are collinear in the same direction"
else
output "The two vectors are not collinear in the same direction"
end
IsCollinear(Libraries.Compute.Vector2 other, number precision)
This action determines whether the passed vector is collinear with the calling vector, meaning that it lies on the same line as the calling vector and has the same direction as the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector2: The other vector
- number precision: The desired precision
Return
boolean: true if the vectors are collinear, false otherwise.
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(6.0, 8.0)
boolean collinear = firstVector:IsCollinear(secondVector, 0.00001)
if collinear
output "The two vectors are collinear in the same direction"
else
output "The two vectors are not collinear in the same direction"
end
IsCollinearOpposite(Libraries.Compute.Vector2 other)
This action determines whether the passed vector is collinear in the opposite direction with the calling vector, meaning that it lies on the same line as the calling vector and has the opposite direction as the calling vector.
Parameters
- Libraries.Compute.Vector2: The other vector
Return
boolean: true if the vectors are collinear in the opposite directions, false otherwise
Example
use Libraries.Compute.Vector2
Vector2 firstVector
Vector2 secondVector
firstVector:Set(3.0, 4.0)
secondVector:Set(-6.0, -8.0)
boolean collinearOpposite = firstVector:IsCollinearOpposite(secondVector)
if collinearOpposite
output "The two vectors are collinear in the opposite direction"
else
output "The two vectors are not collinear in the opposite direction"
end
IsCollinearOpposite(Libraries.Compute.Vector2 other, number precision)
This action determines whether the passed vector is collinear in the opposite direction with the calling vector, meaning that it lies on the same line as the calling vector and has the opposite direction as the calling vector to within the passed precision.
Parameters
- Libraries.Compute.Vector2: The other vector
- number precision: The desired precis