Een reële vector in de drie-dimensionale ruimte wordt gekenmerkt door drie reële getallen (type float).
Programmeer volgende methoden in de klasse Vector3D:
Vector3D aan te maken. De constructor heeft als argumenten de x-, y- en z-coöordinaat van de vector
x, y en z)
abs(vector) de norm van de vector oplevert
* : het inwendig product van 2 vectoren (resultaat is een reëel getal)
+ : de som van de 2 vectoren (resultaat is een Vector3D)
- : het verschil van de 2 vectoren (resultaat is een Vector3D)
@ : het kruisproduct van de 2 vectoren (resultaat is een Vector3D). Deze binaire operator wordt in Python
vertaald naar de methode-oproep __matmul__(self, other) ; tip: gebruik de methode np.cross()
__repr__()
__str__() die volgende gedaante levert :
[x,y,z], dus alle componenten, gescheiden door komma's, zonder spaties en omringd door vierkante haakjes; gebruik het formaat
%f voor het afdrukken van de componenten van de vector
v = Vector3D(1.0, 0.0, 0.0) print(v.x) # 1.0 print(v.y) # 0.0 print(v.z) # 0.0 print(abs(v)) # 1.0 v1 = eval(repr(v)) print(v1.x == v.x) # True print(v1.y == v.y) # True print(v1.z == v.z) # True w = Vector3D(0.0, 1.0, 0.0) print(str(v + w)) # [1.000000,1.000000,0.000000] print(str(v - w)) # [1.000000,-1.000000,0.000000] print(v*w) # 0.0 print(str(v @ w)) # [0.000000,0.000000,1.000000] print(str(w @ v)) # [0.000000,0.000000,-1.000000]