Difference between revisions of "IC Python API:RLPy RVector2"
Chuck (RL) (Talk | contribs) m |
Chuck (RL) (Talk | contribs) m (→Description) |
||
Line 5: | Line 5: | ||
== Description == | == Description == | ||
− | 2D vector2 math class for float values. This class provides access to RLPy's internal vector2 math library allowing vectors to be handled | + | 2D vector2 math class for float values. This class provides access to RLPy's internal vector2 math library allowing vectors to be handled easily, in a manner compatible with internal RLPy data structures. It also supports operators and provides some constants for your convenience: |
− | + | ||
{|class = "wikitable" | {|class = "wikitable" | ||
!Constant | !Constant |
Revision as of 22:41, 23 February 2020
- Main article: Modules.
- Last modified: 02/23/2020
Description
2D vector2 math class for float values. This class provides access to RLPy's internal vector2 math library allowing vectors to be handled easily, in a manner compatible with internal RLPy data structures. It also supports operators and provides some constants for your convenience:
Constant | Description |
---|---|
RVector2.ZERO | 2D zero vector2: (0, 0) |
RVector2.UNIT_X | 2D x unit vector2: (1, 0) |
RVector2.UNIT_Y | 2D y unit vector2: (0, 1) |
RVector2.UNIT_XY | 2D unit vector2: (1, 1) |
Constructors & Destructors
__init__
Initialize a new RVector2 object as a 2D zero vector2: (0, 0).
a = RLPy.RVector2()
__init__( self, x, y )
Initialize a new RVector2 object as a 2D vector2: (x, y).
Parameters
- x [IN] a numerical value for x coordinate - float or int
- y [IN] a numerical value for y coordinate - float or int
a = RLPy.RVector2(1, 2)
__init__( self, args )
Initialize a new RVector2 object with another RVector2 object: args. This new RVector2 object has the same value as args.
a = RLPy.RVector2(1, 2)
b = RLPy.RVector2(a)
Operators
==
The "equal to" operator.
a = RLPy.RVector2(1, 2)
b = a
print(a == b) #True
!=
The "not equal to" operator.
a = RLPy.RVector2()
b = RLPy.RVector2(1, 2)
print(a != b) #True
<
The "less than" operator. Similar to string comparison: If first element (x) less than, return True, if greater than, return False, if equal then compare the second element (y). When (y) is greater than or equal return False else return True.
a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)
print(a< b) #True
print(b< c) #True
print(a< d) #False
>
The "greater than" operator. Similar to string comparison: If element (x) is greater than, return True, if less than, return False, if equal then compare the second element (y). If (y) is greater than or equal, return False, else return True.
a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)
print(b >a) #True
print(c >b) #True
print(d >a) #False
<=
The "less than or equal to" operator. Similar to string comparison: If element (x) is less than, return True, if greater than, return False, if equal then compare the second element (y). If (y) is greater than, return False, else return True.
a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)
print(a<= b) #True
print(b<= c) #True
print(a<= d) #True
>=
The "greater than or equal to" operator. Similar to string comparison: If element (x) is greater than, return True, if less than, return False, if equal then compare the second element (y). If (y) is less than, return False, else return True.
a = RLPy.RVector2(0, 0)
b = RLPy.RVector2(0, 1)
c = RLPy.RVector2(1, 0)
d = RLPy.RVector2(0, 0)
print(b >= a) #True
print(c >= b) #True
print(d >= a) #True
+
The "addition" operator. Perform 2D vector2 addition.
a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
c = a + b
print(str(c.x) + ', ' + str(c.y)) #1.0, 3.0
-
The "subtraction" operator. Perform 2D vector2 subtraction.
a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 3)
c = b - a
print(str(c.x) + ', ' + str(c.y)) #1.0, 2.0
*
The "multiplication" operator. Perform a scalar multiplication when the second element is an integer or float. If the second operand is another vector2, then the respective x, y elements are multiplied.
a = RLPy.RVector2(1, 2)
b = a * 2
c = RLPy.RVector2(2, 3)
d = a * c
print(str(b.x) + ', ' + str(b.y)) #2.0, 4.0
print(str(d.x) + ', ' + str(d.y)) #2.0, 6.0
/
The "division" operator. Perform a scalar division when the second operand is an integer or float. If the second operand is another vector2, then the respective x,y elements are divided.
a = RLPy.RVector2(1, 2)
b = a / 2
c = RLPy.RVector2(2, 3)
d = a / c
print(str(b.x) + ', ' + str(b.y)) #0.5, 1.0
print(str(d.x) + ', ' + str(d.y)) #0.5, 0.6666666865348816
-
The "unary minus" operator. Inverse the sign of each element.
a = RLPy.RVector2(1, 2)
b = -a
print(str(b.x) + ', ' + str(b.y)) #-1.0, -2.0
+=
The "addition assignment" operator.
a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
a += b
print(str(a.x) + ', ' + str(a.y)) #1.0, 3.0
-=
The "subtraction assignment" operator.
a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
a -= b
print(str(a.x) + ', ' + str(a.y)) #-1.0, -1.0
*=
The "multiplication assignment" operator. Please refer to * operator for calculation method.
a = RLPy.RVector2(1, 2)
a *= 2
b = RLPy.RVector2(1, 2)
c = RLPy.RVector2(2, 3)
b *= c
print(str(a.x) + ', ' + str(a.y)) #2.0, 4.0
print(str(b.x) + ', ' + str(b.y)) #2.0, 6.0
/=
The "division assignment" operator. Please refer to / operator for calculation method.
a = RLPy.RVector2(1, 2)
a /= 2
b = RLPy.RVector2(1, 2)
c = RLPy.RVector2(2, 3)
b /= c
print(str(a.x) + ', ' + str(a.y)) #0.5, 1.0
print(str(b.x) + ', ' + str(b.y)) #0.5, 0.6666666865348816
Member Functions
AddWithWeight
Add a vector2 with weight.
Parameters
- vSrc [IN] The vector2 to add - RLPy.RVector2
- fWeight [IN] The value of weight - float
a = RLPy.RVector2(0, 1)
b = RLPy.RVector2(1, 2)
a.AddWithWeight(b, 2)
print(str(a.x) + ', ' + str(a.y)) #2.0, 5.0
Dot
Calculate dot production of the two vectors.
Parameters
- vV [IN] The vector2 to compute dot product - RLPy.RVector2
Returns
- The value of the dot product - float
a = RLPy.RVector2(1, 2)
dot = a.Dot( RLPy.RVector2(3, 5) )
print(dot) #13.0
Inverse
Return the inverse of a given vector2 by inverting the x, y elements.
Returns
- The inversed vector2 - RLPy.RVector2
a = RLPy.RVector2(0.5, 4)
b = a.Inverse()
print(str(b.x) + ', ' + str(b.y)) #2.0, 0.25
Length
Length of the vector2.
Returns
- The length of this vector2 - float
a = RLPy.RVector2(3, 4)
print( str(a.Length()) ) #5.0
Normalize
Normalize a given vector2.
Returns
- Returns the length of the vector2 before normalization - float
a = RLPy.RVector2(1, 1)
b = a.Normalize()
print(str(a.x) + ', ' + str(a.y)) #0.7071067690849304, 0.7071067690849304
print(b) #1.4142135381698608
SetX
Set the value of the x-axis.
Parameters
- tX [IN] the value of the x-axis - float
a = RLPy.RVector2(1, 1)
a.SetX(10)
print(str(a.x) + ', ' + str(a.y)) #10.0, 1.0
SetY
Set the value of the y-axis.
Parameters
- tX [IN] the value of the y-axis.
a = RLPy.RVector2(1, 1)
a.SetY(10)
print(str(a.x) + ', ' + str(a.y)) #1.0, 10.0
SquaredLength
Squared length of the vector2.
Returns
- The squared length of this vector2 - float
a = RLPy.RVector2(1, 1)
print(a.SquaredLength()) #2.0