IC Python API:RLPy RVector2
- Main article: Modules.
Description
2D Vector math class for float values. This class provides access to RLPy's internal vector math library allowing vectors to be handled effortlessly, and in a manner compatible with internal RLPy data structures. It also supports operators and vector related functions.
RVector2 also provides some constants for your convenience:
Constant | Description |
---|---|
RVector2.ZERO | 2D zero vector: (0, 0) |
RVector2.UNIT_X | 2D x unit vector: (1, 0) |
RVector2.UNIT_Y | 2D y unit vector: (0, 1) |
RVector2.UNIT_XY | 2D vector: (1, 1) |
Constructors & Destructors
__init__
Initialize a new RVector2 object as a 2D zero vector: (0, 0).
a = RLPy.RVector2()
__init__( self, x, y )
Initialize a new RVector2 object as a 2D vector: (x, y).
a = RLPy.RVector2(1, 2)
Parameters
x [IN] a numerical value for x coordinate - float or int
y [IN] a numerical value for y coordinate - float or int
__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, the process is as follows:
- Compare the first element (x).
- If the first vector2.x is greater than the second vector2.x then return False.
- If the first vector2.x is less than the second vector2.x then return True.
- If the first and second vector2.x are equal then continue to compare the second element (y).
- If the first vector2.y is greater than the second vector2.y then return False.
- If the first vector2.y is less than the second vector2.y then return True.
- If the first and second vector2.y are equal then return False.
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. 這個運算子作用在 RVector2 的比對方式類似字串比對. 先比對一個元素(x), 比較大就回傳 true, 比較小就回傳 false, 如果數值一樣就繼續比對第二個元素(y), 比對方式與第一個元素相同, 但如果數值一樣就回傳 false.
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. 這個運算子作用在 RVector2 的比對方式類似字串比對. 先比對一個元素(x), 比較小就回傳 true, 比較大就回傳 false, 如果數值一樣就繼續比對第二個元素(y), 比對方式與第一個元素相同, 但如果數值一樣就回傳 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. 這個運算子作用在 RVector2 的比對方式類似字串比對. 先比對一個元素(x), 比較大就回傳 true, 比較小就回傳 false, 如果數值一樣就繼續比對第二個元素(y), 比對方式與第一個元素相同, 但如果數值一樣就回傳 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 vector 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 vector 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. 當第二個運算元是scalar (int or float)時, perform 2D vector multiplication with scalar. 當第二個運算元是 RVector2 時則會把對應元素相乘.
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. 當第二個運算元是scalar (int or float)時, perform 2D vector multiplication with scalar (multiply with 1/2nd-operand). 當第二個運算元是 RVector2 時則會把對應元素相除.
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. 計算方式請參考 * 運算子.
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. 計算方式請參考 / 運算子.
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
RLPy.RVector2.AddWithWeight ( self, vSrc, fWeight )
Add a vector with weight.
Parameters
vSrc [IN] The vector to add - RLPy.RVector2
fWeight [IN] The value of weight - float
Dot
RLPy.RVector2.Dot ( self, vV )
Calculate dot production of the two vectors.
Parameters
vV [IN] The vector - RLPy.RVector2
Returns
Inverse
RLPy.RVector2.Inverse ( self )
Inverse this vector.
Returns
Length
RLPy.RVector2.Length ( self )
Length of the vector.
Returns
Normalize
RLPy.RVector2.Normalize ( self )
Normalizes this vector.
Returns
SetX
RLPy.RVector2.SetX ( self, tX )
Set the value of the x-axis.
Parameters
tX [IN] the value of the x-axis - float
SetY
RLPy.RVector2.SetY ( self, tY )
Set the value of the y-axis.
Parameters
tX [IN] the value of the y-axis.
SquaredLength
RLPy.RVector2.SquaredLength ( self )
Squared length of the vector.
Returns
X
RLPy.RVector2.X ( self, args )
Get the value of the x-axis.
Returns
Y
RLPy.RVector2.Y ( self, args )
Get the value of the y-axis.